Print this page
Fix NFS design problems re. multiple zone keys
Make NFS server zone-specific data all have the same lifetime
Fix rfs4_clean_state_exi
Fix exi_cache_reclaim
Fix mistakes in zone keys work
More fixes re. exi_zoneid and exi_tree
(danmcd -> Keep some ASSERT()s around for readability.)
*** 167,176 ****
--- 167,177 ----
exi->exi_count = 1;
/* Caller will set exi_zone... */
exi->exi_volatile_dev = (vfssw[vp->v_vfsp->vfs_fstype].vsw_flag &
VSW_VOLATILEDEV) ? 1 : 0;
mutex_init(&exi->exi_lock, NULL, MUTEX_DEFAULT, NULL);
+ exi->exi_zoneid = ne->ne_globals->nfs_zoneid;
/*
* Build up the template fhandle
*/
exi->exi_fh.fh_fsid = fsid;
*** 838,848 ****
--- 839,860 ----
treenode_t *connect_point = NULL;
ASSERT(RW_WRITE_HELD(&ne->exported_lock));
ASSERT(curzone == exip->exi_zone || curzone == global_zone);
+ /*
+ * exi_tree can be null for the zone root
+ * which means we're already at the "top"
+ * and there's nothing more to "climb".
+ */
tnode = exip->exi_tree;
+ if (tnode == NULL) {
+ /* Should only happen for... */
+ ASSERT(exip == ne->exi_root);
+ return;
+ }
+
/*
* The unshared exportinfo was unlinked in unexport().
* Zeroing tree_exi ensures that we will skip it.
*/
tnode->tree_exi = NULL;