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 == '/')