Print this page
2619 asynchronous destruction of ZFS file systems
2747 SPA versioning with zfs feature flags
Reviewed by: Matt Ahrens <mahrens@delphix.com>
Reviewed by: George Wilson <gwilson@delphix.com>
Reviewed by: Richard Lowe <richlowe@richlowe.net>
Reviewed by: Dan Kruchinin <dan.kruchinin@gmail.com>
Approved by: Dan McDonald <danmcd@nexenta.com>
        
*** 18,28 ****
   *
   * CDDL HEADER END
   */
  /*
   * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
!  * Copyright (c) 2011 by Delphix. All rights reserved.
   * Copyright 2011 Nexenta Systems, Inc.  All rights reserved.
   */
  
  #ifndef _SYS_SPA_IMPL_H
  #define _SYS_SPA_IMPL_H
--- 18,28 ----
   *
   * CDDL HEADER END
   */
  /*
   * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
!  * Copyright (c) 2012 by Delphix. All rights reserved.
   * Copyright 2011 Nexenta Systems, Inc.  All rights reserved.
   */
  
  #ifndef _SYS_SPA_IMPL_H
  #define _SYS_SPA_IMPL_H
*** 125,134 ****
--- 125,135 ----
          uint8_t         spa_sync_on;            /* sync threads are running */
          spa_load_state_t spa_load_state;        /* current load operation */
          uint64_t        spa_import_flags;       /* import specific flags */
          taskq_t         *spa_zio_taskq[ZIO_TYPES][ZIO_TASKQ_TYPES];
          dsl_pool_t      *spa_dsl_pool;
+         boolean_t       spa_is_initializing;    /* true while opening pool */
          metaslab_class_t *spa_normal_class;     /* normal data class */
          metaslab_class_t *spa_log_class;        /* intent log data class */
          uint64_t        spa_first_txg;          /* first txg after spa_open() */
          uint64_t        spa_final_txg;          /* txg of export/destroy */
          uint64_t        spa_freeze_txg;         /* freeze pool at this txg */
*** 142,151 ****
--- 143,153 ----
          uint64_t        spa_load_guid;          /* spa_load initialized guid */
          list_t          spa_config_dirty_list;  /* vdevs with dirty config */
          list_t          spa_state_dirty_list;   /* vdevs with dirty state */
          spa_aux_vdev_t  spa_spares;             /* hot spares */
          spa_aux_vdev_t  spa_l2cache;            /* L2ARC cache devices */
+         nvlist_t        *spa_label_features;    /* Features for reading MOS */
          uint64_t        spa_config_object;      /* MOS object for pool config */
          uint64_t        spa_config_generation;  /* config generation number */
          uint64_t        spa_syncing_txg;        /* txg currently syncing */
          bpobj_t         spa_deferred_bpobj;     /* deferred-free bplist */
          bplist_t        spa_free_bplist[TXG_SIZE]; /* bplist of stuff to free */
*** 218,228 ****
          struct proc     *spa_proc;              /* "zpool-poolname" process */
          uint64_t        spa_did;                /* if procp != p0, did of t1 */
          boolean_t       spa_autoreplace;        /* autoreplace set in open */
          int             spa_vdev_locks;         /* locks grabbed */
          uint64_t        spa_creation_version;   /* version at pool creation */
!         uint64_t        spa_prev_software_version;
          /*
           * spa_refcnt & spa_config_lock must be the last elements
           * because refcount_t changes size based on compilation options.
           * In order for the MDB module to function correctly, the other
           * fields must remain in the same location.
--- 220,233 ----
          struct proc     *spa_proc;              /* "zpool-poolname" process */
          uint64_t        spa_did;                /* if procp != p0, did of t1 */
          boolean_t       spa_autoreplace;        /* autoreplace set in open */
          int             spa_vdev_locks;         /* locks grabbed */
          uint64_t        spa_creation_version;   /* version at pool creation */
!         uint64_t        spa_prev_software_version; /* See ub_software_version */
!         uint64_t        spa_feat_for_write_obj; /* required to write to pool */
!         uint64_t        spa_feat_for_read_obj;  /* required to read from pool */
!         uint64_t        spa_feat_desc_obj;      /* Feature descriptions */
          /*
           * spa_refcnt & spa_config_lock must be the last elements
           * because refcount_t changes size based on compilation options.
           * In order for the MDB module to function correctly, the other
           * fields must remain in the same location.