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,64 ****
   */
  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)
--- 53,62 ----
*** 95,105 ****
   * Destroy a duplicate request cache.
   */
  void
  rfs4_fini_drc(void)
  {
!         nfs4_srv_t *nsrv4 = zone_getspecific(rfs4_zone_key, curzone);
          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) {
--- 93,103 ----
   * Destroy a duplicate request cache.
   */
  void
  rfs4_fini_drc(void)
  {
!         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,395 ****
          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);
          rfs4_drc_t *nfs4_drc = nsrv4->nfs4_drc;
  
          ASSERT(disp);
  
          /*
--- 383,393 ----
          int              error = 0;
          int              dis_flags = 0;
          int              dr_stat = NFS4_NOT_DUP;
          rfs4_dupreq_t   *drp = NULL;
          int              rv;
!         nfs4_srv_t *nsrv4 = nfs4_get_srv();
          rfs4_drc_t *nfs4_drc = nsrv4->nfs4_drc;
  
          ASSERT(disp);
  
          /*