Print this page
patch fix-bad-code
patch as-lock-macro-simplification
@@ -5607,11 +5607,11 @@
struct as *as = pp->p_as;
vnode_t *vp;
int allow = 1;
ASSERT(pp->p_as != &kas);
- AS_LOCK_ENTER(as, &as->a_lock, RW_READER);
+ AS_LOCK_ENTER(as, RW_READER);
for (seg = AS_SEGFIRST(as); seg != NULL; seg = AS_SEGNEXT(as, seg)) {
/*
* Cannot enter zone with shared anon memory which
* reserves swap. See comment above.
@@ -5630,11 +5630,11 @@
if (!vn_can_change_zones(vp)) { /* bail on first match */
allow = 0;
break;
}
}
- AS_LOCK_EXIT(as, &as->a_lock);
+ AS_LOCK_EXIT(as);
return (allow);
}
/*
* Count swap reserved by curproc's address space
@@ -5646,11 +5646,11 @@
struct seg *seg;
struct as *as = pp->p_as;
size_t swap = 0;
ASSERT(pp->p_as != &kas);
- ASSERT(AS_WRITE_HELD(as, &as->a_lock));
+ ASSERT(AS_WRITE_HELD(as));
for (seg = AS_SEGFIRST(as); seg != NULL; seg = AS_SEGNEXT(as, seg))
swap += seg_swresv(seg);
return (swap);
}
@@ -5851,11 +5851,11 @@
* reservation from the global zone to the non global zone because
* asynchronous faults on the processes' address space can lock
* memory and reserve swap via MCL_FUTURE and MAP_NORESERVE
* segments respectively.
*/
- AS_LOCK_ENTER(pp->as, &pp->p_as->a_lock, RW_WRITER);
+ AS_LOCK_ENTER(pp->p_as, RW_WRITER);
swap = as_swresv();
mutex_enter(&pp->p_lock);
zone_proj0 = zone->zone_zsched->p_task->tk_proj;
/* verify that we do not exceed and task or lwp limits */
mutex_enter(&zone->zone_nlwps_lock);
@@ -5898,11 +5898,11 @@
mutex_exit(&(pp->p_task->tk_proj->kpj_data.kpd_crypto_lock));
pp->p_flag |= SZONETOP;
pp->p_zone = zone;
mutex_exit(&pp->p_lock);
- AS_LOCK_EXIT(pp->p_as, &pp->p_as->a_lock);
+ AS_LOCK_EXIT(pp->p_as);
/*
* Joining the zone cannot fail from now on.
*
* This means that a lot of the following code can be commonized and