Print this page
6265 speed up mount/umount

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/sys/vfs.h
          +++ new/usr/src/uts/common/sys/vfs.h
↓ open down ↓ 195 lines elided ↑ open up ↑
 196  196   * functions, as it is protected by the vfs list lock. Modifying a mount
 197  197   * option requires grabbing the vfs list write lock, which can be a very
 198  198   * high latency lock.
 199  199   */
 200  200  struct zone;            /* from zone.h */
 201  201  struct fem_head;        /* from fem.h */
 202  202  
 203  203  typedef struct vfs {
 204  204          struct vfs      *vfs_next;              /* next VFS in VFS list */
 205  205          struct vfs      *vfs_prev;              /* prev VFS in VFS list */
      206 +        avl_node_t      vfs_avldev;             /* by dev index */
      207 +        avl_node_t      vfs_avlmntpnt;          /* by mntpnt index */
      208 +        /*
      209 +         * global mount count to define an order on entries in
      210 +         * the avl trees with same dev/mountpoint
      211 +         */
      212 +        uint64_t        vfs_mntix;
 206  213  
 207  214  /* vfs_op should not be used directly.  Accessor functions are provided */
 208  215          vfsops_t        *vfs_op;                /* operations on VFS */
 209  216  
 210  217          struct vnode    *vfs_vnodecovered;      /* vnode mounted on */
 211  218          uint_t          vfs_flag;               /* flags */
 212  219          uint_t          vfs_bsize;              /* native block size */
 213  220          int             vfs_fstype;             /* file system type index */
 214  221          fsid_t          vfs_fsid;               /* file system id */
 215  222          void            *vfs_data;              /* private data */
↓ open down ↓ 406 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX