Print this page
10592 misc. metaslab and vdev related ZoL bug fixes
Portions contributed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed by: Giuseppe Di Natale <guss80@gmail.com>
Reviewed by: George Melikov <mail@gmelikov.ru>
Reviewed by: Paul Dagnelie <pcd@delphix.com>
Reviewed by: Matt Ahrens <mahrens@delphix.com>
Reviewed by: Pavel Zakharov <pavel.zakharov@delphix.com>
Reviewed by: Tony Hutter <hutter2@llnl.gov>
Reviewed by: Kody Kantor <kody.kantor@joyent.com>
Approved by: Dan McDonald <danmcd@joyent.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 ↓ 238 lines elided ↑ open up ↑
 239  239          txg_list_t      vdev_dtl_list;  /* per-txg dirty DTL lists      */
 240  240          txg_node_t      vdev_txg_node;  /* per-txg dirty vdev linkage   */
 241  241          boolean_t       vdev_remove_wanted; /* async remove wanted?     */
 242  242          boolean_t       vdev_probe_wanted; /* async probe wanted?       */
 243  243          list_node_t     vdev_config_dirty_node; /* config dirty list    */
 244  244          list_node_t     vdev_state_dirty_node; /* state dirty list      */
 245  245          uint64_t        vdev_deflate_ratio; /* deflation ratio (x512)   */
 246  246          uint64_t        vdev_islog;     /* is an intent log device      */
 247  247          uint64_t        vdev_removing;  /* device is being removed?     */
 248  248          boolean_t       vdev_ishole;    /* is a hole in the namespace   */
 249      -        kmutex_t        vdev_queue_lock; /* protects vdev_queue_depth   */
 250  249          uint64_t        vdev_top_zap;
 251  250          vdev_alloc_bias_t vdev_alloc_bias; /* metaslab allocation bias  */
 252  251  
 253  252          /* pool checkpoint related */
 254  253          space_map_t     *vdev_checkpoint_sm;    /* contains reserved blocks */
 255  254  
 256  255          boolean_t       vdev_initialize_exit_wanted;
 257  256          vdev_initializing_state_t       vdev_initialize_state;
 258  257          kthread_t       *vdev_initialize_thread;
 259  258          /* Protects vdev_initialize_thread and vdev_initialize_state. */
↓ open down ↓ 39 lines elided ↑ open up ↑
 299  298           * pass, this is appended to vdev_obsolete_sm via
 300  299           * vdev_indirect_sync_obsolete().  The vdev_obsolete_lock
 301  300           * protects against concurrent modifications of vdev_obsolete_segments
 302  301           * from multiple zio threads.
 303  302           */
 304  303          kmutex_t        vdev_obsolete_lock;
 305  304          range_tree_t    *vdev_obsolete_segments;
 306  305          space_map_t     *vdev_obsolete_sm;
 307  306  
 308  307          /*
 309      -         * The queue depth parameters determine how many async writes are
 310      -         * still pending (i.e. allocated but not yet issued to disk) per
 311      -         * top-level (vdev_async_write_queue_depth) and the maximum allowed
 312      -         * (vdev_max_async_write_queue_depth). These values only apply to
 313      -         * top-level vdevs.
 314      -         */
 315      -        uint64_t        vdev_async_write_queue_depth;
 316      -        uint64_t        vdev_max_async_write_queue_depth;
 317      -
 318      -        /*
 319  308           * Leaf vdev state.
 320  309           */
 321  310          range_tree_t    *vdev_dtl[DTL_TYPES]; /* dirty time logs        */
 322  311          space_map_t     *vdev_dtl_sm;   /* dirty time log space map     */
 323  312          txg_node_t      vdev_dtl_node;  /* per-txg dirty DTL linkage    */
 324  313          uint64_t        vdev_dtl_object; /* DTL object                  */
 325  314          uint64_t        vdev_psize;     /* physical device capacity     */
 326  315          uint64_t        vdev_wholedisk; /* true if this is a whole disk */
 327  316          uint64_t        vdev_offline;   /* persistent offline state     */
 328  317          uint64_t        vdev_faulted;   /* persistent faulted state     */
↓ open down ↓ 196 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX