Print this page
Send nfs_export_t to untraverse()

*** 719,729 **** /* * Traverse across the mountpoint and continue the * climb on the mounted-on filesystem. */ ! vp = untraverse(vp); exportdir = 0; continue; } /* --- 719,729 ---- /* * Traverse across the mountpoint and continue the * climb on the mounted-on filesystem. */ ! vp = untraverse(ne, vp); exportdir = 0; continue; } /*
*** 908,928 **** /* * Traverse backward across mountpoint from the * root vnode of a filesystem to its mounted-on * vnode. - * - * Callers to this function have confirmed the use of curzone is safe here. */ vnode_t * ! untraverse(vnode_t *vp) { vnode_t *tvp, *nextvp; tvp = vp; for (;;) { ! if (!(tvp->v_flag & VROOT) && !VN_IS_CURZONEROOT(tvp)) break; /* lock vfs to prevent unmount of this vfs */ vfs_lock_wait(tvp->v_vfsp); --- 908,927 ---- /* * Traverse backward across mountpoint from the * root vnode of a filesystem to its mounted-on * vnode. */ vnode_t * ! untraverse(nfs_export_t *ne, vnode_t *vp) { vnode_t *tvp, *nextvp; + vnode_t *zone_rootvp = ne->exi_root->exi_vp; tvp = vp; for (;;) { ! if (!(tvp->v_flag & VROOT) && !VN_CMP(tvp, zone_rootvp)) break; /* lock vfs to prevent unmount of this vfs */ vfs_lock_wait(tvp->v_vfsp);