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

*** 5274,5288 **** * r_inmap after we release r_lkserlock. */ if (nfs_rw_enter_sig(&rp->r_rwlock, RW_WRITER, INTR(vp))) return (EINTR); ! atomic_add_int(&rp->r_inmap, 1); nfs_rw_exit(&rp->r_rwlock); if (nfs_rw_enter_sig(&rp->r_lkserlock, RW_READER, INTR(vp))) { ! atomic_add_int(&rp->r_inmap, -1); return (EINTR); } if (vp->v_flag & VNOCACHE) { error = EAGAIN; --- 5274,5288 ---- * r_inmap after we release r_lkserlock. */ if (nfs_rw_enter_sig(&rp->r_rwlock, RW_WRITER, INTR(vp))) return (EINTR); ! atomic_inc_uint(&rp->r_inmap); nfs_rw_exit(&rp->r_rwlock); if (nfs_rw_enter_sig(&rp->r_lkserlock, RW_READER, INTR(vp))) { ! atomic_dec_uint(&rp->r_inmap); return (EINTR); } if (vp->v_flag & VNOCACHE) { error = EAGAIN;
*** 5320,5330 **** error = as_map(as, *addrp, len, segvn_create, &vn_a); as_rangeunlock(as); done: nfs_rw_exit(&rp->r_lkserlock); ! atomic_add_int(&rp->r_inmap, -1); return (error); } /* ARGSUSED */ static int --- 5320,5330 ---- error = as_map(as, *addrp, len, segvn_create, &vn_a); as_rangeunlock(as); done: nfs_rw_exit(&rp->r_lkserlock); ! atomic_dec_uint(&rp->r_inmap); return (error); } /* ARGSUSED */ static int