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