Print this page
5045 use atomic_{inc,dec}_* instead of atomic_add_*

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/fs/nfs/nfs_subr.c
          +++ new/usr/src/uts/common/fs/nfs/nfs_subr.c
↓ open down ↓ 407 lines elided ↑ open up ↑
 408  408                  *newcl = cp->ch_client;
 409  409                  *chp = cp;
 410  410                  return (0);
 411  411          }
 412  412  
 413  413          /*
 414  414           * There weren't any free client handles which fit, so allocate
 415  415           * a new one and use that.
 416  416           */
 417  417  #ifdef DEBUG
 418      -        atomic_add_64(&nfscl->nfscl_stat.clalloc.value.ui64, 1);
      418 +        atomic_inc_64(&nfscl->nfscl_stat.clalloc.value.ui64);
 419  419  #endif
 420  420          mutex_exit(&nfscl->nfscl_chtable_lock);
 421  421  
 422  422          nfscl->nfscl_stat.cltoomany.value.ui64++;
 423  423          if (newch != NULL) {
 424  424                  kmem_free(newch->ch_protofmly, strlen(newch->ch_protofmly) + 1);
 425  425                  kmem_free(newch, sizeof (*newch));
 426  426          }
 427  427  
 428  428          cp = kmem_cache_alloc(chtab_cache, KM_SLEEP);
 429  429          cp->ch_head = ch;
 430  430  
 431  431          sigintr(&smask, (int)ci->cl_flags & MI_INT);
 432  432          error = clnt_tli_kcreate(svp->sv_knconf, &svp->sv_addr, ci->cl_prog,
 433  433              ci->cl_vers, ci->cl_readsize, ci->cl_retrans, cr, &cp->ch_client);
 434  434          sigunintr(&smask);
 435  435  
 436  436          if (error != 0) {
 437  437                  kmem_cache_free(chtab_cache, cp);
 438  438  #ifdef DEBUG
 439      -                atomic_add_64(&nfscl->nfscl_stat.clalloc.value.ui64, -1);
      439 +                atomic_dec_64(&nfscl->nfscl_stat.clalloc.value.ui64);
 440  440  #endif
 441  441                  /*
 442  442                   * Warning is unnecessary if error is EINTR.
 443  443                   */
 444  444                  if (error != EINTR) {
 445  445                          nfs_cmn_err(error, CE_WARN,
 446  446                              "clget: couldn't create handle: %m\n");
 447  447                  }
 448  448                  return (error);
 449  449          }
 450  450          (void) CLNT_CONTROL(cp->ch_client, CLSET_PROGRESS, NULL);
 451  451          auth_destroy(cp->ch_client->cl_auth);
 452  452          error = sec_clnt_geth(cp->ch_client, svp->sv_secdata, cr,
 453  453              &cp->ch_client->cl_auth);
 454  454          if (error || cp->ch_client->cl_auth == NULL) {
 455  455                  CLNT_DESTROY(cp->ch_client);
 456  456                  kmem_cache_free(chtab_cache, cp);
 457  457  #ifdef DEBUG
 458      -                atomic_add_64(&nfscl->nfscl_stat.clalloc.value.ui64, -1);
      458 +                atomic_dec_64(&nfscl->nfscl_stat.clalloc.value.ui64);
 459  459  #endif
 460  460                  return ((error != 0) ? error : EINTR);
 461  461          }
 462  462          ch->ch_timesused++;
 463  463          *newcl = cp->ch_client;
 464  464          ASSERT(cp->ch_client->cl_nosignal == FALSE);
 465  465          *chp = cp;
 466  466          return (0);
 467  467  }
 468  468  
↓ open down ↓ 2061 lines elided ↑ open up ↑
2530 2530                  VFS_RELE(vp->v_vfsp);
2531 2531                  vn_reinit(vp);
2532 2532          } else {
2533 2533                  vnode_t *new_vp;
2534 2534  
2535 2535                  mutex_exit(&rpfreelist_lock);
2536 2536  
2537 2537                  rp = kmem_cache_alloc(rnode_cache, KM_SLEEP);
2538 2538                  new_vp = vn_alloc(KM_SLEEP);
2539 2539  
2540      -                atomic_add_long((ulong_t *)&rnew, 1);
     2540 +                atomic_inc_ulong((ulong_t *)&rnew);
2541 2541  #ifdef DEBUG
2542 2542                  clstat_debug.nrnode.value.ui64++;
2543 2543  #endif
2544 2544                  vp = new_vp;
2545 2545          }
2546 2546  
2547 2547          bzero(rp, sizeof (*rp));
2548 2548          rp->r_vnode = vp;
2549 2549          nfs_rw_init(&rp->r_rwlock, NULL, RW_DEFAULT, NULL);
2550 2550          nfs_rw_init(&rp->r_lkserlock, NULL, RW_DEFAULT, NULL);
↓ open down ↓ 461 lines elided ↑ open up ↑
3012 3012  
3013 3013          vp = RTOV(rp);
3014 3014          vfsp = vp->v_vfsp;
3015 3015  
3016 3016          ASSERT(vp->v_count == 1);
3017 3017          ASSERT(rp->r_count == 0);
3018 3018          ASSERT(rp->r_lmpl == NULL);
3019 3019          ASSERT(rp->r_mapcnt == 0);
3020 3020          ASSERT(!(rp->r_flags & RHASHED));
3021 3021          ASSERT(rp->r_freef == NULL && rp->r_freeb == NULL);
3022      -        atomic_add_long((ulong_t *)&rnew, -1);
     3022 +        atomic_dec_ulong((ulong_t *)&rnew);
3023 3023  #ifdef DEBUG
3024 3024          clstat_debug.nrnode.value.ui64--;
3025 3025  #endif
3026 3026          nfs_rw_destroy(&rp->r_rwlock);
3027 3027          nfs_rw_destroy(&rp->r_lkserlock);
3028 3028          mutex_destroy(&rp->r_statelock);
3029 3029          cv_destroy(&rp->r_cv);
3030 3030          cv_destroy(&rp->r_commit.c_cv);
3031 3031          if (rp->r_flags & RDELMAPLIST)
3032 3032                  list_destroy(&rp->r_indelmap);
↓ open down ↓ 773 lines elided ↑ open up ↑
3806 3806          rddir_cache *rc;
3807 3807  
3808 3808          rc = kmem_alloc(sizeof (*rc), flags);
3809 3809          if (rc != NULL) {
3810 3810                  rc->entries = NULL;
3811 3811                  rc->flags = RDDIR;
3812 3812                  cv_init(&rc->cv, NULL, CV_DEFAULT, NULL);
3813 3813                  mutex_init(&rc->lock, NULL, MUTEX_DEFAULT, NULL);
3814 3814                  rc->count = 1;
3815 3815  #ifdef DEBUG
3816      -                atomic_add_64(&clstat_debug.dirent.value.ui64, 1);
     3816 +                atomic_inc_64(&clstat_debug.dirent.value.ui64);
3817 3817  #endif
3818 3818          }
3819 3819          return (rc);
3820 3820  }
3821 3821  
3822 3822  static void
3823 3823  rddir_cache_free(rddir_cache *rc)
3824 3824  {
3825 3825  
3826 3826  #ifdef DEBUG
3827      -        atomic_add_64(&clstat_debug.dirent.value.ui64, -1);
     3827 +        atomic_dec_64(&clstat_debug.dirent.value.ui64);
3828 3828  #endif
3829 3829          if (rc->entries != NULL) {
3830 3830  #ifdef DEBUG
3831 3831                  rddir_cache_buf_free(rc->entries, rc->buflen);
3832 3832  #else
3833 3833                  kmem_free(rc->entries, rc->buflen);
3834 3834  #endif
3835 3835          }
3836 3836          cv_destroy(&rc->cv);
3837 3837          mutex_destroy(&rc->lock);
↓ open down ↓ 1362 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX