Print this page
Caution with use after exi_rele()
Be far more judicious in the use of curzone-using macros.
(Merge and extra asserts by danmcd.)

*** 2945,2959 **** --- 2945,2961 ---- */ /* Release the reference on the old exi value */ ASSERT(*exi != NULL); exi_rele(*exi); + *exi = NULL; if (error = nfs_check_vpexi(mc_dvp, *vpp, kcred, exi)) { VN_RELE(*vpp); goto publicfh_done; } + /* Have a new *exi */ } } publicfh_done: if (mc_dvp)
*** 2976,2985 **** --- 2978,2989 ---- { char namebuf[TYPICALMAXPATHLEN]; struct pathname pn; int error; + ASSERT3U(crgetzoneid(cr), ==, curzone->zone_id); + /* * If pathname starts with '/', then set startdvp to root. */ if (*path == '/') { while (*path == '/')