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);
/*