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:
parent
8350a9cf25
commit
b67e183366
@ -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;
|
||||
|
@ -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 */
|
||||
|
Loading…
x
Reference in New Issue
Block a user