Print this page
Possibility to physically reserve space without writing leaf blocks


  34 
  35 #ifdef  __cplusplus
  36 extern "C" {
  37 #endif
  38 
  39 struct zfeature_info;
  40 
  41 typedef enum spa_feature {
  42         SPA_FEATURE_NONE = -1,
  43         SPA_FEATURE_ASYNC_DESTROY,
  44         SPA_FEATURE_EMPTY_BPOBJ,
  45         SPA_FEATURE_LZ4_COMPRESS,
  46         SPA_FEATURE_MULTI_VDEV_CRASH_DUMP,
  47         SPA_FEATURE_SPACEMAP_HISTOGRAM,
  48         SPA_FEATURE_ENABLED_TXG,
  49         SPA_FEATURE_HOLE_BIRTH,
  50         SPA_FEATURE_EXTENSIBLE_DATASET,
  51         SPA_FEATURE_EMBEDDED_DATA,
  52         SPA_FEATURE_BOOKMARKS,
  53         SPA_FEATURE_FS_SS_LIMIT,

  54         SPA_FEATURES
  55 } spa_feature_t;
  56 
  57 #define SPA_FEATURE_DISABLED    (-1ULL)
  58 
  59 typedef struct zfeature_info {
  60         spa_feature_t fi_feature;
  61         const char *fi_uname;   /* User-facing feature name */
  62         const char *fi_guid;    /* On-disk feature identifier */
  63         const char *fi_desc;    /* Feature description */
  64         boolean_t fi_can_readonly; /* Can open pool readonly w/o support? */
  65         boolean_t fi_mos;       /* Is the feature necessary to read the MOS? */
  66         /* Activate this feature at the same time it is enabled */
  67         boolean_t fi_activate_on_enable;
  68         /* array of dependencies, terminated by SPA_FEATURE_NONE */
  69         const spa_feature_t *fi_depends;
  70 } zfeature_info_t;
  71 
  72 typedef int (zfeature_func_t)(zfeature_info_t *, void *);
  73 


  34 
  35 #ifdef  __cplusplus
  36 extern "C" {
  37 #endif
  38 
  39 struct zfeature_info;
  40 
  41 typedef enum spa_feature {
  42         SPA_FEATURE_NONE = -1,
  43         SPA_FEATURE_ASYNC_DESTROY,
  44         SPA_FEATURE_EMPTY_BPOBJ,
  45         SPA_FEATURE_LZ4_COMPRESS,
  46         SPA_FEATURE_MULTI_VDEV_CRASH_DUMP,
  47         SPA_FEATURE_SPACEMAP_HISTOGRAM,
  48         SPA_FEATURE_ENABLED_TXG,
  49         SPA_FEATURE_HOLE_BIRTH,
  50         SPA_FEATURE_EXTENSIBLE_DATASET,
  51         SPA_FEATURE_EMBEDDED_DATA,
  52         SPA_FEATURE_BOOKMARKS,
  53         SPA_FEATURE_FS_SS_LIMIT,
  54         SPA_FEATURE_SPACE_RESERVATION,
  55         SPA_FEATURES
  56 } spa_feature_t;
  57 
  58 #define SPA_FEATURE_DISABLED    (-1ULL)
  59 
  60 typedef struct zfeature_info {
  61         spa_feature_t fi_feature;
  62         const char *fi_uname;   /* User-facing feature name */
  63         const char *fi_guid;    /* On-disk feature identifier */
  64         const char *fi_desc;    /* Feature description */
  65         boolean_t fi_can_readonly; /* Can open pool readonly w/o support? */
  66         boolean_t fi_mos;       /* Is the feature necessary to read the MOS? */
  67         /* Activate this feature at the same time it is enabled */
  68         boolean_t fi_activate_on_enable;
  69         /* array of dependencies, terminated by SPA_FEATURE_NONE */
  70         const spa_feature_t *fi_depends;
  71 } zfeature_info_t;
  72 
  73 typedef int (zfeature_func_t)(zfeature_info_t *, void *);
  74