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