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.)
        
@@ -53,12 +53,10 @@
  */
 uint32_t nfs4_drc_hash = 541;
 
 static void rfs4_resource_err(struct svc_req *req, COMPOUND4args *argsp);
 
-extern zone_key_t rfs4_zone_key;
-
 /*
  * Initialize a duplicate request cache.
  */
 rfs4_drc_t *
 rfs4_init_drc(uint32_t drc_size, uint32_t drc_hash_size)
@@ -95,11 +93,11 @@
  * Destroy a duplicate request cache.
  */
 void
 rfs4_fini_drc(void)
 {
-        nfs4_srv_t *nsrv4 = zone_getspecific(rfs4_zone_key, curzone);
+        nfs4_srv_t *nsrv4 = nfs4_get_srv();
         rfs4_drc_t *drc = nsrv4->nfs4_drc;
         rfs4_dupreq_t *drp, *drp_next;
 
         /* iterate over the dr_cache and free the enties */
         for (drp = list_head(&(drc->dr_cache)); drp != NULL; drp = drp_next) {
@@ -385,11 +383,11 @@
         int              error = 0;
         int              dis_flags = 0;
         int              dr_stat = NFS4_NOT_DUP;
         rfs4_dupreq_t   *drp = NULL;
         int              rv;
-        nfs4_srv_t *nsrv4 = zone_getspecific(rfs4_zone_key, curzone);
+        nfs4_srv_t *nsrv4 = nfs4_get_srv();
         rfs4_drc_t *nfs4_drc = nsrv4->nfs4_drc;
 
         ASSERT(disp);
 
         /*