git: 83bc72a04e0d - main - jail: Fix a stray mutex from 76ad42abf9d4.

Jamie Gritton jamie at FreeBSD.org
Mon Jan 18 23:47:52 UTC 2021


The branch main has been updated by jamie:

URL: https://cgit.FreeBSD.org/src/commit/?id=83bc72a04e0d1b6dab453707290e3eb36ef69d95

commit 83bc72a04e0d1b6dab453707290e3eb36ef69d95
Author:     Jamie Gritton <jamie at FreeBSD.org>
AuthorDate: 2021-01-18 23:47:09 +0000
Commit:     Jamie Gritton <jamie at FreeBSD.org>
CommitDate: 2021-01-18 23:47:09 +0000

    jail: Fix a stray mutex from 76ad42abf9d4.
---
 sys/kern/kern_jail.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/sys/kern/kern_jail.c b/sys/kern/kern_jail.c
index ba4c1aab0d85..4893e4df2781 100644
--- a/sys/kern/kern_jail.c
+++ b/sys/kern/kern_jail.c
@@ -1119,7 +1119,6 @@ kern_jail_set(struct thread *td, struct uio *optuio, int flags)
 				if (tpr != pr && tpr->pr_ref > 0 &&
 				    !strcmp(tpr->pr_name + pnamelen, namelc)) {
 					mtx_lock(&tpr->pr_mtx);
-					drflags |= PD_LOCKED;
 					if (prison_isalive(tpr)) {
 						if (pr == NULL &&
 						    cuflags != JAIL_CREATE) {
@@ -1128,6 +1127,7 @@ kern_jail_set(struct thread *td, struct uio *optuio, int flags)
 							 * for updates.
 							 */
 							pr = tpr;
+							drflags |= PD_LOCKED;
 							break;
 						}
 						/*
@@ -1136,6 +1136,7 @@ kern_jail_set(struct thread *td, struct uio *optuio, int flags)
 						 * active sibling jail.
 						 */
 						error = EEXIST;
+						mtx_unlock(&tpr->pr_mtx);
 						vfs_opterror(opts,
 						   "jail \"%s\" already exists",
 						   name);
@@ -1146,7 +1147,6 @@ kern_jail_set(struct thread *td, struct uio *optuio, int flags)
 					    prison_isvalid(tpr))
 						deadpr = tpr;
 					mtx_unlock(&tpr->pr_mtx);
-					drflags &= ~PD_LOCKED;
 				}
 			}
 			/* If no active jail is found, use a dying one. */


More information about the dev-commits-src-all mailing list