diff options
Diffstat (limited to 'usr/src/uts/common/fs/zfs/sys/zio.h')
-rw-r--r-- | usr/src/uts/common/fs/zfs/sys/zio.h | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/usr/src/uts/common/fs/zfs/sys/zio.h b/usr/src/uts/common/fs/zfs/sys/zio.h index d03106b942..7592614d6d 100644 --- a/usr/src/uts/common/fs/zfs/sys/zio.h +++ b/usr/src/uts/common/fs/zfs/sys/zio.h @@ -394,8 +394,14 @@ typedef int zio_pipe_stage_t(zio_t *zio); * the reexecute flags are protected by io_lock, modifiable by children, * and always propagated -- even when ZIO_FLAG_DONT_PROPAGATE is set. */ -#define ZIO_REEXECUTE_NOW 0x01 -#define ZIO_REEXECUTE_SUSPEND 0x02 +#define ZIO_REEXECUTE_NOW 0x01 +#define ZIO_REEXECUTE_SUSPEND 0x02 +#define ZIO_REEXECUTE_NO_SUSPEND 0x04 + +#define ZIO_SHOULD_REEXECUTE(x) \ + ((x)->io_reexecute & ZIO_REEXECUTE_NOW || \ + ((x)->io_reexecute & ZIO_REEXECUTE_SUSPEND && \ + (((x)->io_reexecute & ZIO_REEXECUTE_NO_SUSPEND) == 0))) /* * The io_trim flags are used to specify the type of TRIM to perform. They @@ -465,6 +471,7 @@ struct zio { hrtime_t io_timestamp; hrtime_t io_queued_timestamp; hrtime_t io_target_timestamp; + hrtime_t io_dispatched; /* time I/O was dispatched to disk */ hrtime_t io_delta; /* vdev queue service delta */ hrtime_t io_delay; /* Device access time (disk or */ /* file). */ @@ -500,6 +507,7 @@ struct zio { zio_cksum_report_t *io_cksum_report; uint64_t io_ena; + zoneid_t io_zoneid; /* zone which originated this I/O */ /* Taskq dispatching state */ taskq_ent_t io_tqent; }; |