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);