Print this page
4171 clean up spa_feature_*() interfaces
4172 implement extensible_dataset feature for use by other zpool features
Reviewed by: Max Grossman <max.grossman@delphix.com>
Reviewed by: Christopher Siden <christopher.siden@delphix.com>
Reviewed by: George Wilson <george.wilson@delphix.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/fs/zfs/sys/dsl_dataset.h
          +++ new/usr/src/uts/common/fs/zfs/sys/dsl_dataset.h
↓ open down ↓ 41 lines elided ↑ open up ↑
  42   42  extern "C" {
  43   43  #endif
  44   44  
  45   45  struct dsl_dataset;
  46   46  struct dsl_dir;
  47   47  struct dsl_pool;
  48   48  
  49   49  #define DS_FLAG_INCONSISTENT    (1ULL<<0)
  50   50  #define DS_IS_INCONSISTENT(ds)  \
  51   51          ((ds)->ds_phys->ds_flags & DS_FLAG_INCONSISTENT)
       52 +
  52   53  /*
  53      - * Note: nopromote can not yet be set, but we want support for it in this
  54      - * on-disk version, so that we don't need to upgrade for it later.
       54 + * Do not allow this dataset to be promoted.
  55   55   */
  56   56  #define DS_FLAG_NOPROMOTE       (1ULL<<1)
  57   57  
  58   58  /*
  59   59   * DS_FLAG_UNIQUE_ACCURATE is set if ds_unique_bytes has been correctly
  60   60   * calculated for head datasets (starting with SPA_VERSION_UNIQUE_ACCURATE,
  61   61   * refquota/refreservations).
  62   62   */
  63   63  #define DS_FLAG_UNIQUE_ACCURATE (1ULL<<2)
  64   64  
  65   65  /*
  66   66   * DS_FLAG_DEFER_DESTROY is set after 'zfs destroy -d' has been called
  67   67   * on a dataset. This allows the dataset to be destroyed using 'zfs release'.
  68   68   */
  69   69  #define DS_FLAG_DEFER_DESTROY   (1ULL<<3)
  70   70  #define DS_IS_DEFER_DESTROY(ds) \
  71   71          ((ds)->ds_phys->ds_flags & DS_FLAG_DEFER_DESTROY)
  72   72  
  73   73  /*
       74 + * DS_FIELD_* are strings that are used in the "extensified" dataset zap object.
       75 + * They should be of the format <reverse-dns>:<field>.
       76 + */
       77 +
       78 +/*
  74   79   * DS_FLAG_CI_DATASET is set if the dataset contains a file system whose
  75   80   * name lookups should be performed case-insensitively.
  76   81   */
  77   82  #define DS_FLAG_CI_DATASET      (1ULL<<16)
  78   83  
  79   84  #define DS_CREATE_FLAG_NODIRTY  (1ULL<<24)
  80   85  
  81   86  typedef struct dsl_dataset_phys {
  82   87          uint64_t ds_dir_obj;            /* DMU_OT_DSL_DIR */
  83   88          uint64_t ds_prev_snap_obj;      /* DMU_OT_DSL_DATASET */
↓ open down ↓ 204 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX