Print this page
3752 want more verifiable dbuf user eviction
Submitted by:   Justin Gibbs <justing@spectralogic.com>
Submitted by:   Will Andrews <willa@spectralogic.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/fs/zfs/sys/dnode.h
          +++ new/usr/src/uts/common/fs/zfs/sys/dnode.h
↓ open down ↓ 234 lines elided ↑ open up ↑
 235  235   * iterating descendent dbufs in dnode_move(). Handles are not allocated
 236  236   * individually, but as an array of child dnodes in dnode_hold_impl().
 237  237   */
 238  238  typedef struct dnode_handle {
 239  239          /* Protects dnh_dnode from modification by dnode_move(). */
 240  240          zrlock_t dnh_zrlock;
 241  241          dnode_t *dnh_dnode;
 242  242  } dnode_handle_t;
 243  243  
 244  244  typedef struct dnode_children {
      245 +        dmu_buf_user_t db_evict;        /* User evict data */
 245  246          size_t dnc_count;               /* number of children */
 246  247          dnode_handle_t dnc_children[1]; /* sized dynamically */
 247  248  } dnode_children_t;
 248  249  
 249  250  typedef struct free_range {
 250  251          avl_node_t fr_node;
 251  252          uint64_t fr_blkid;
 252  253          uint64_t fr_nblks;
 253  254  } free_range_t;
 254  255  
↓ open down ↓ 75 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX