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>

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/fs/zfs/sys/vdev_impl.h
          +++ new/usr/src/uts/common/fs/zfs/sys/vdev_impl.h
↓ open down ↓ 194 lines elided ↑ open up ↑
 195  195          vdev_queue_t    vdev_queue;     /* I/O deadline schedule queue  */
 196  196          vdev_cache_t    vdev_cache;     /* physical block cache         */
 197  197          spa_aux_vdev_t  *vdev_aux;      /* for l2cache vdevs            */
 198  198          zio_t           *vdev_probe_zio; /* root of current probe       */
 199  199          vdev_aux_t      vdev_label_aux; /* on-disk aux state            */
 200  200  
 201  201          /*
 202  202           * For DTrace to work in userland (libzpool) context, these fields must
 203  203           * remain at the end of the structure.  DTrace will use the kernel's
 204  204           * CTF definition for 'struct vdev', and since the size of a kmutex_t is
 205      -         * larger in userland, the offsets for the rest fields would be
      205 +         * larger in userland, the offsets for the rest of the fields would be
 206  206           * incorrect.
 207  207           */
 208  208          kmutex_t        vdev_dtl_lock;  /* vdev_dtl_{map,resilver}      */
 209  209          kmutex_t        vdev_stat_lock; /* vdev_stat                    */
 210  210          kmutex_t        vdev_probe_lock; /* protects vdev_probe_zio     */
 211  211  };
 212  212  
 213  213  #define VDEV_RAIDZ_MAXPARITY    3
 214  214  
 215  215  #define VDEV_PAD_SIZE           (8 << 10)
↓ open down ↓ 34 lines elided ↑ open up ↑
 250  250   */
 251  251  #define VDEV_BOOT_OFFSET        (2 * sizeof (vdev_label_t))
 252  252  #define VDEV_BOOT_SIZE          (7ULL << 19)                    /* 3.5M */
 253  253  
 254  254  /*
 255  255   * Size of label regions at the start and end of each leaf device.
 256  256   */
 257  257  #define VDEV_LABEL_START_SIZE   (2 * sizeof (vdev_label_t) + VDEV_BOOT_SIZE)
 258  258  #define VDEV_LABEL_END_SIZE     (2 * sizeof (vdev_label_t))
 259  259  #define VDEV_LABELS             4
      260 +#define VDEV_BEST_LABEL         VDEV_LABELS
 260  261  
 261  262  #define VDEV_ALLOC_LOAD         0
 262  263  #define VDEV_ALLOC_ADD          1
 263  264  #define VDEV_ALLOC_SPARE        2
 264  265  #define VDEV_ALLOC_L2CACHE      3
 265  266  #define VDEV_ALLOC_ROOTPOOL     4
 266  267  #define VDEV_ALLOC_SPLIT        5
 267  268  #define VDEV_ALLOC_ATTACH       6
 268  269  
 269  270  /*
↓ open down ↓ 57 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX