The branch main has been updated by jamie:

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

commit 83bc72a04e0d1b6dab453707290e3eb36ef69d95
Author:     Jamie Gritton <ja...@freebsd.org>
AuthorDate: 2021-01-18 23:47:09 +0000
Commit:     Jamie Gritton <ja...@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. */
_______________________________________________
dev-commits-src-main@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/dev-commits-src-main
To unsubscribe, send any mail to "dev-commits-src-main-unsubscr...@freebsd.org"

Reply via email to