usr/src/uts/common/fs/zfs/sys/spa_impl.h
changeset 13700 2889e2596bd6
parent 13525 7059b67f1bc2
child 13777 b1e53580146d
equal deleted inserted replaced
13699:733714f4dc24 13700:2889e2596bd6
    18  *
    18  *
    19  * CDDL HEADER END
    19  * CDDL HEADER END
    20  */
    20  */
    21 /*
    21 /*
    22  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
    22  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
    23  * Copyright (c) 2011 by Delphix. All rights reserved.
    23  * Copyright (c) 2012 by Delphix. All rights reserved.
    24  * Copyright 2011 Nexenta Systems, Inc.  All rights reserved.
    24  * Copyright 2011 Nexenta Systems, Inc.  All rights reserved.
    25  */
    25  */
    26 
    26 
    27 #ifndef _SYS_SPA_IMPL_H
    27 #ifndef _SYS_SPA_IMPL_H
    28 #define	_SYS_SPA_IMPL_H
    28 #define	_SYS_SPA_IMPL_H
   125 	uint8_t		spa_sync_on;		/* sync threads are running */
   125 	uint8_t		spa_sync_on;		/* sync threads are running */
   126 	spa_load_state_t spa_load_state;	/* current load operation */
   126 	spa_load_state_t spa_load_state;	/* current load operation */
   127 	uint64_t	spa_import_flags;	/* import specific flags */
   127 	uint64_t	spa_import_flags;	/* import specific flags */
   128 	taskq_t		*spa_zio_taskq[ZIO_TYPES][ZIO_TASKQ_TYPES];
   128 	taskq_t		*spa_zio_taskq[ZIO_TYPES][ZIO_TASKQ_TYPES];
   129 	dsl_pool_t	*spa_dsl_pool;
   129 	dsl_pool_t	*spa_dsl_pool;
       
   130 	boolean_t	spa_is_initializing;	/* true while opening pool */
   130 	metaslab_class_t *spa_normal_class;	/* normal data class */
   131 	metaslab_class_t *spa_normal_class;	/* normal data class */
   131 	metaslab_class_t *spa_log_class;	/* intent log data class */
   132 	metaslab_class_t *spa_log_class;	/* intent log data class */
   132 	uint64_t	spa_first_txg;		/* first txg after spa_open() */
   133 	uint64_t	spa_first_txg;		/* first txg after spa_open() */
   133 	uint64_t	spa_final_txg;		/* txg of export/destroy */
   134 	uint64_t	spa_final_txg;		/* txg of export/destroy */
   134 	uint64_t	spa_freeze_txg;		/* freeze pool at this txg */
   135 	uint64_t	spa_freeze_txg;		/* freeze pool at this txg */
   142 	uint64_t	spa_load_guid;		/* spa_load initialized guid */
   143 	uint64_t	spa_load_guid;		/* spa_load initialized guid */
   143 	list_t		spa_config_dirty_list;	/* vdevs with dirty config */
   144 	list_t		spa_config_dirty_list;	/* vdevs with dirty config */
   144 	list_t		spa_state_dirty_list;	/* vdevs with dirty state */
   145 	list_t		spa_state_dirty_list;	/* vdevs with dirty state */
   145 	spa_aux_vdev_t	spa_spares;		/* hot spares */
   146 	spa_aux_vdev_t	spa_spares;		/* hot spares */
   146 	spa_aux_vdev_t	spa_l2cache;		/* L2ARC cache devices */
   147 	spa_aux_vdev_t	spa_l2cache;		/* L2ARC cache devices */
       
   148 	nvlist_t	*spa_label_features;	/* Features for reading MOS */
   147 	uint64_t	spa_config_object;	/* MOS object for pool config */
   149 	uint64_t	spa_config_object;	/* MOS object for pool config */
   148 	uint64_t	spa_config_generation;	/* config generation number */
   150 	uint64_t	spa_config_generation;	/* config generation number */
   149 	uint64_t	spa_syncing_txg;	/* txg currently syncing */
   151 	uint64_t	spa_syncing_txg;	/* txg currently syncing */
   150 	bpobj_t		spa_deferred_bpobj;	/* deferred-free bplist */
   152 	bpobj_t		spa_deferred_bpobj;	/* deferred-free bplist */
   151 	bplist_t	spa_free_bplist[TXG_SIZE]; /* bplist of stuff to free */
   153 	bplist_t	spa_free_bplist[TXG_SIZE]; /* bplist of stuff to free */
   218 	struct proc	*spa_proc;		/* "zpool-poolname" process */
   220 	struct proc	*spa_proc;		/* "zpool-poolname" process */
   219 	uint64_t	spa_did;		/* if procp != p0, did of t1 */
   221 	uint64_t	spa_did;		/* if procp != p0, did of t1 */
   220 	boolean_t	spa_autoreplace;	/* autoreplace set in open */
   222 	boolean_t	spa_autoreplace;	/* autoreplace set in open */
   221 	int		spa_vdev_locks;		/* locks grabbed */
   223 	int		spa_vdev_locks;		/* locks grabbed */
   222 	uint64_t	spa_creation_version;	/* version at pool creation */
   224 	uint64_t	spa_creation_version;	/* version at pool creation */
   223 	uint64_t	spa_prev_software_version;
   225 	uint64_t	spa_prev_software_version; /* See ub_software_version */
       
   226 	uint64_t	spa_feat_for_write_obj;	/* required to write to pool */
       
   227 	uint64_t	spa_feat_for_read_obj;	/* required to read from pool */
       
   228 	uint64_t	spa_feat_desc_obj;	/* Feature descriptions */
   224 	/*
   229 	/*
   225 	 * spa_refcnt & spa_config_lock must be the last elements
   230 	 * spa_refcnt & spa_config_lock must be the last elements
   226 	 * because refcount_t changes size based on compilation options.
   231 	 * because refcount_t changes size based on compilation options.
   227 	 * In order for the MDB module to function correctly, the other
   232 	 * In order for the MDB module to function correctly, the other
   228 	 * fields must remain in the same location.
   233 	 * fields must remain in the same location.