usr/src/uts/common/fs/zfs/sys/spa_impl.h
changeset 7046 361307ae060d
parent 7042 46fc4b6db23e
child 7294 c9c31ef4c960
equal deleted inserted replaced
7045:d4292813278d 7046:361307ae060d
   117 	bplist_t	spa_sync_bplist;	/* deferred-free bplist */
   117 	bplist_t	spa_sync_bplist;	/* deferred-free bplist */
   118 	krwlock_t	spa_traverse_lock;	/* traverse vs. spa_sync() */
   118 	krwlock_t	spa_traverse_lock;	/* traverse vs. spa_sync() */
   119 	uberblock_t	spa_ubsync;		/* last synced uberblock */
   119 	uberblock_t	spa_ubsync;		/* last synced uberblock */
   120 	uberblock_t	spa_uberblock;		/* current uberblock */
   120 	uberblock_t	spa_uberblock;		/* current uberblock */
   121 	kmutex_t	spa_scrub_lock;		/* resilver/scrub lock */
   121 	kmutex_t	spa_scrub_lock;		/* resilver/scrub lock */
   122 	kthread_t	*spa_scrub_thread;	/* scrub/resilver thread */
       
   123 	traverse_handle_t *spa_scrub_th;	/* scrub traverse handle */
       
   124 	uint64_t	spa_scrub_restart_txg;	/* need to restart */
       
   125 	uint64_t	spa_scrub_mintxg;	/* min txg we'll scrub */
       
   126 	uint64_t	spa_scrub_maxtxg;	/* max txg we'll scrub */
       
   127 	uint64_t	spa_scrub_inflight;	/* in-flight scrub I/Os */
   122 	uint64_t	spa_scrub_inflight;	/* in-flight scrub I/Os */
   128 	uint64_t	spa_scrub_maxinflight;	/* max in-flight scrub I/Os */
   123 	uint64_t	spa_scrub_maxinflight;	/* max in-flight scrub I/Os */
   129 	uint64_t	spa_scrub_errors;	/* scrub I/O error count */
   124 	uint64_t	spa_scrub_errors;	/* scrub I/O error count */
   130 	int		spa_scrub_suspended;	/* tell scrubber to suspend */
       
   131 	kcondvar_t	spa_scrub_cv;		/* scrub thread state change */
       
   132 	kcondvar_t	spa_scrub_io_cv;	/* scrub I/O completion */
   125 	kcondvar_t	spa_scrub_io_cv;	/* scrub I/O completion */
   133 	uint8_t		spa_scrub_stop;		/* tell scrubber to stop */
       
   134 	uint8_t		spa_scrub_active;	/* active or suspended? */
   126 	uint8_t		spa_scrub_active;	/* active or suspended? */
   135 	uint8_t		spa_scrub_type;		/* type of scrub we're doing */
   127 	uint8_t		spa_scrub_type;		/* type of scrub we're doing */
   136 	uint8_t		spa_scrub_finished;	/* indicator to rotate logs */
   128 	uint8_t		spa_scrub_finished;	/* indicator to rotate logs */
       
   129 	uint8_t		spa_scrub_started;	/* started since last boot */
       
   130 	uint8_t		spa_scrub_reopen;	/* scrub doing vdev_reopen */
   137 	kmutex_t	spa_async_lock;		/* protect async state */
   131 	kmutex_t	spa_async_lock;		/* protect async state */
   138 	kthread_t	*spa_async_thread;	/* thread doing async task */
   132 	kthread_t	*spa_async_thread;	/* thread doing async task */
   139 	int		spa_async_suspended;	/* async tasks suspended */
   133 	int		spa_async_suspended;	/* async tasks suspended */
   140 	kcondvar_t	spa_async_cv;		/* wait for thread_exit() */
   134 	kcondvar_t	spa_async_cv;		/* wait for thread_exit() */
   141 	uint16_t	spa_async_tasks;	/* async task mask */
   135 	uint16_t	spa_async_tasks;	/* async task mask */
   162 	kcondvar_t	spa_zio_cv;		/* resume I/O pipeline */
   156 	kcondvar_t	spa_zio_cv;		/* resume I/O pipeline */
   163 	kmutex_t	spa_zio_lock;		/* zio error lock */
   157 	kmutex_t	spa_zio_lock;		/* zio error lock */
   164 	uint8_t		spa_failmode;		/* failure mode for the pool */
   158 	uint8_t		spa_failmode;		/* failure mode for the pool */
   165 	boolean_t	spa_import_faulted;	/* allow faulted vdevs */
   159 	boolean_t	spa_import_faulted;	/* allow faulted vdevs */
   166 	boolean_t	spa_is_root;		/* pool is root */
   160 	boolean_t	spa_is_root;		/* pool is root */
       
   161 	int		spa_minref;		/* num refs when first opened */
   167 	/*
   162 	/*
   168 	 * spa_refcnt & spa_config_lock must be the last elements
   163 	 * spa_refcnt & spa_config_lock must be the last elements
   169 	 * because refcount_t changes size based on compilation options.
   164 	 * because refcount_t changes size based on compilation options.
   170 	 * In order for the MDB module to function correctly, the other
   165 	 * In order for the MDB module to function correctly, the other
   171 	 * fields must remain in the same location.
   166 	 * fields must remain in the same location.