Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/sysv_msg.c
Show First 20 Lines • Show All 281 Lines • ▼ Show 20 Lines | #endif | ||||
msg_prison_slot = osd_jail_register(NULL, methods); | msg_prison_slot = osd_jail_register(NULL, methods); | ||||
rsv = osd_reserve(msg_prison_slot); | rsv = osd_reserve(msg_prison_slot); | ||||
prison_lock(&prison0); | prison_lock(&prison0); | ||||
(void)osd_jail_set_reserved(&prison0, msg_prison_slot, rsv, &prison0); | (void)osd_jail_set_reserved(&prison0, msg_prison_slot, rsv, &prison0); | ||||
prison_unlock(&prison0); | prison_unlock(&prison0); | ||||
rsv = NULL; | rsv = NULL; | ||||
sx_slock(&allprison_lock); | sx_slock(&allprison_lock); | ||||
TAILQ_FOREACH(pr, &allprison, pr_list) { | TAILQ_FOREACH(pr, &allprison, pr_list) { | ||||
if (!prison_isvalid(pr)) | |||||
continue; | |||||
if (rsv == NULL) | if (rsv == NULL) | ||||
rsv = osd_reserve(msg_prison_slot); | rsv = osd_reserve(msg_prison_slot); | ||||
prison_lock(pr); | prison_lock(pr); | ||||
if (prison_isvalid(pr) && (pr->pr_allow & PR_ALLOW_SYSVIPC)) { | if (pr->pr_allow & PR_ALLOW_SYSVIPC) { | ||||
(void)osd_jail_set_reserved(pr, msg_prison_slot, rsv, | (void)osd_jail_set_reserved(pr, msg_prison_slot, rsv, | ||||
&prison0); | &prison0); | ||||
rsv = NULL; | rsv = NULL; | ||||
} | } | ||||
prison_unlock(pr); | prison_unlock(pr); | ||||
} | } | ||||
if (rsv != NULL) | if (rsv != NULL) | ||||
osd_free_reserved(rsv); | osd_free_reserved(rsv); | ||||
▲ Show 20 Lines • Show All 1,619 Lines • Show Last 20 Lines |