Print this page
Send zone's rootvp to untraverse()
@@ -414,23 +414,24 @@
int
rfs_climb_crossmnt(vnode_t **dvpp, struct exportinfo **exip, cred_t *cr)
{
struct exportinfo *exi;
vnode_t *dvp = *dvpp;
+ vnode_t *zone_rootvp;
- ASSERT3U((*exip)->exi_zoneid, ==, curzone->zone_id);
- ASSERT((dvp->v_flag & VROOT) || VN_IS_CURZONEROOT(dvp));
+ zone_rootvp = (*exip)->exi_ne->exi_root->exi_vp;
+ ASSERT((dvp->v_flag & VROOT) || VN_CMP(zone_rootvp, dvp));
VN_HOLD(dvp);
- dvp = untraverse(dvp);
+ dvp = untraverse(dvp, zone_rootvp);
exi = nfs_vptoexi(NULL, dvp, cr, NULL, NULL, FALSE);
if (exi == NULL) {
VN_RELE(dvp);
return (-1);
}
- ASSERT3U(exi->exi_zoneid, ==, curzone->zone_id);
+ ASSERT3U(exi->exi_zoneid, ==, (*exip)->exi_zoneid);
exi_rele(*exip);
*exip = exi;
VN_RELE(*dvpp);
*dvpp = dvp;