Remove the PR_REMOVE flag, which was meant as a temporary marker for

a jail that might be seen mid-removal.  It hasn't been doing the right
thing since at least the ability to resurrect dying jails, and such
resurrection also makes it unnecessary.
This commit is contained in:
jamie 2016-04-25 03:58:08 +00:00
parent 8350a9cf25
commit b67e183366
2 changed files with 1 additions and 4 deletions

View File

@ -1222,7 +1222,7 @@ kern_jail_set(struct thread *td, struct uio *optuio, int flags)
}
created = 1;
mtx_lock(&ppr->pr_mtx);
if (ppr->pr_ref == 0 || (ppr->pr_flags & PR_REMOVE)) {
if (ppr->pr_ref == 0) {
mtx_unlock(&ppr->pr_mtx);
error = ENOENT;
vfs_opterror(opts, "parent jail went away!");
@ -2273,7 +2273,6 @@ sys_jail_remove(struct thread *td, struct jail_remove_args *uap)
/* Remove all descendants of this prison, then remove this prison. */
pr->pr_ref++;
pr->pr_flags |= PR_REMOVE;
if (!LIST_EMPTY(&pr->pr_children)) {
mtx_unlock(&pr->pr_mtx);
lpr = NULL;
@ -2282,7 +2281,6 @@ sys_jail_remove(struct thread *td, struct jail_remove_args *uap)
if (cpr->pr_ref > 0) {
tpr = cpr;
cpr->pr_ref++;
cpr->pr_flags |= PR_REMOVE;
} else {
/* Already removed - do not do it again. */
tpr = NULL;

View File

@ -210,7 +210,6 @@ struct prison_racct {
/* primary jail address. */
/* Internal flag bits */
#define PR_REMOVE 0x01000000 /* In process of being removed */
#define PR_IP4 0x02000000 /* IPv4 restricted or disabled */
/* by this jail or an ancestor */
#define PR_IP6 0x04000000 /* IPv6 restricted or disabled */