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

*** 10488,10502 **** * r_inmap after we release r_lkserlock. */ if (nfs_rw_enter_sig(&rp->r_rwlock, RW_WRITER, INTR4(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, INTR4(vp))) { ! atomic_add_int(&rp->r_inmap, -1); return (EINTR); } if (vp->v_flag & VNOCACHE) { --- 10488,10502 ---- * r_inmap after we release r_lkserlock. */ if (nfs_rw_enter_sig(&rp->r_rwlock, RW_WRITER, INTR4(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, INTR4(vp))) { ! atomic_dec_uint(&rp->r_inmap); return (EINTR); } if (vp->v_flag & VNOCACHE) {
*** 10600,10610 **** 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); } /* * We're most likely dealing with a kernel module that likes to READ --- 10600,10610 ---- 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); } /* * We're most likely dealing with a kernel module that likes to READ