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;