git: ede4c412b3ea - main - vfs_domount_update(): ensure that 'goto end' works
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 09 Nov 2023 20:22:01 UTC
The branch main has been updated by kib:
URL: https://cgit.FreeBSD.org/src/commit/?id=ede4c412b3ea9289ef42c664b01b6b5ff7eac434
commit ede4c412b3ea9289ef42c664b01b6b5ff7eac434
Author: Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2023-11-09 20:18:47 +0000
Commit: Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2023-11-09 20:18:47 +0000
vfs_domount_update(): ensure that 'goto end' works
We need to vfs_op_enter()/vn_seqc_write_start() before jumping to
cleanup.
PR: 274992
Reported by: trasz
Sponsored by: The FreeBSD Foundation
MFC after: 3 days
Fixes: 9ef7a491a4236810e50f0a2ee8d52f5c4bb02c64
---
sys/kern/vfs_mount.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/sys/kern/vfs_mount.c b/sys/kern/vfs_mount.c
index aa4642c0ba8c..1a559bfd998e 100644
--- a/sys/kern/vfs_mount.c
+++ b/sys/kern/vfs_mount.c
@@ -1380,6 +1380,8 @@ vfs_domount_update(
VOP_UNLOCK(vp);
rootvp = NULL;
+ vfs_op_enter(mp);
+ vn_seqc_write_begin(vp);
if (vfs_getopt(*optlist, "fsid", (void **)&fsid_up,
&fsid_up_len) == 0) {
@@ -1394,9 +1396,6 @@ vfs_domount_update(
vfs_deleteopt(*optlist, "fsid");
}
- vfs_op_enter(mp);
- vn_seqc_write_begin(vp);
-
MNT_ILOCK(mp);
if ((mp->mnt_kern_flag & MNTK_UNMOUNT) != 0) {
MNT_IUNLOCK(mp);