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/nfs4_client_state.c
          +++ new/usr/src/uts/common/fs/nfs/nfs4_client_state.c
↓ open down ↓ 665 lines elided ↑ open up ↑
 666  666   * Sequence number used when a new open owner is needed.
 667  667   * This is used so as to not confuse the server.  Since a open owner
 668  668   * is based off of cred, a cred could be re-used quickly, and the server
 669  669   * may not release all state for a cred.
 670  670   */
 671  671  static uint64_t open_owner_seq_num = 0;
 672  672  
 673  673  uint64_t
 674  674  nfs4_get_new_oo_name(void)
 675  675  {
 676      -        return (atomic_add_64_nv(&open_owner_seq_num, 1));
      676 +        return (atomic_inc_64_nv(&open_owner_seq_num));
 677  677  }
 678  678  
 679  679  /*
 680  680   * Create a new open owner and add it to the open owner hash table.
 681  681   */
 682  682  nfs4_open_owner_t *
 683  683  create_open_owner(cred_t *cr, mntinfo4_t *mi)
 684  684  {
 685  685          nfs4_open_owner_t       *oop;
 686  686          nfs4_oo_hash_bucket_t   *bucketp;
↓ open down ↓ 142 lines elided ↑ open up ↑
 829  829          lop->lock_seqid = 0;
 830  830          lop->lo_pending_rqsts = 0;
 831  831          lop->lo_just_created = NFS4_JUST_CREATED;
 832  832          lop->lo_flags = 0;
 833  833          lop->lo_seqid_holder = NULL;
 834  834  
 835  835          /*
 836  836           * A Solaris lock_owner is <seq_num><pid>
 837  837           */
 838  838          lop->lock_owner_name.ln_seq_num =
 839      -            atomic_add_64_nv(&lock_owner_seq_num, 1);
      839 +            atomic_inc_64_nv(&lock_owner_seq_num);
 840  840          lop->lock_owner_name.ln_pid = pid;
 841  841  
 842  842          cv_init(&lop->lo_cv_seqid_sync, NULL, CV_DEFAULT, NULL);
 843  843          mutex_init(&lop->lo_lock, NULL, MUTEX_DEFAULT, NULL);
 844  844  
 845  845          mutex_enter(&lop->lo_lock);
 846  846  
 847  847          /* now add the lock owner to rp */
 848  848          lop->lo_prev_rnode = &rp->r_lo_head;
 849  849          lop->lo_next_rnode = rp->r_lo_head.lo_next_rnode;
↓ open down ↓ 26 lines elided ↑ open up ↑
 876  876  
 877  877          NFS4_DEBUG(nfs4_client_state_debug, (CE_NOTE,
 878  878              "nfs4_set_new_lock_owner_args"));
 879  879  
 880  880          owner->owner_len = sizeof (*cast_namep);
 881  881          owner->owner_val = kmem_alloc(owner->owner_len, KM_SLEEP);
 882  882          /*
 883  883           * A Solaris lock_owner is <seq_num><pid>
 884  884           */
 885  885          cast_namep = (nfs4_lo_name_t *)owner->owner_val;
 886      -        cast_namep->ln_seq_num = atomic_add_64_nv(&lock_owner_seq_num, 1);
      886 +        cast_namep->ln_seq_num = atomic_inc_64_nv(&lock_owner_seq_num);
 887  887          cast_namep->ln_pid = pid;
 888  888  }
 889  889  
 890  890  /*
 891  891   * Fill in the lock owner args.
 892  892   */
 893  893  void
 894  894  nfs4_setlockowner_args(lock_owner4 *owner, rnode4_t *rp, pid_t pid)
 895  895  {
 896  896          nfs4_lock_owner_t *lop;
↓ open down ↓ 1509 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX