Print this page
patch as-lock-macro-simplification
*** 532,542 ****
*/
if (prp->p_as != &kas) {
struct seg *seg;
struct as *as = prp->p_as;
! AS_LOCK_ENTER(as, &as->a_lock, RW_READER);
for (seg = AS_SEGFIRST(as); seg;
seg = AS_SEGNEXT(as, seg)) {
/*
* if we can't get a backing vnode for this
* segment then skip it
--- 532,542 ----
*/
if (prp->p_as != &kas) {
struct seg *seg;
struct as *as = prp->p_as;
! AS_LOCK_ENTER(as, RW_READER);
for (seg = AS_SEGFIRST(as); seg;
seg = AS_SEGNEXT(as, seg)) {
/*
* if we can't get a backing vnode for this
* segment then skip it
*** 596,606 ****
(VTOCS(fvp)->s_dip == VTOCS(vp)->s_dip)) {
use_flag |= F_MAP;
break;
}
}
! AS_LOCK_EXIT(as, &as->a_lock);
}
if (use_flag) {
ASSERT(pcnt < fu_data->fud_user_max);
fu_data->fud_user[pcnt].fu_flags = use_flag;
--- 596,606 ----
(VTOCS(fvp)->s_dip == VTOCS(vp)->s_dip)) {
use_flag |= F_MAP;
break;
}
}
! AS_LOCK_EXIT(as);
}
if (use_flag) {
ASSERT(pcnt < fu_data->fud_user_max);
fu_data->fud_user[pcnt].fu_flags = use_flag;