aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKirk McKusick <mckusick@FreeBSD.org>2022-09-27 15:57:30 +0000
committerKirk McKusick <mckusick@FreeBSD.org>2022-10-13 15:43:41 +0000
commit0ae91878cc451ce5d45bbec815db830e0bc4c591 (patch)
treee5c3a1c7a93e36e9b5341dd1fb19495a33ec0796
parentce82d6846bda5378d91aa94c442f9b8c416ffce9 (diff)
downloadsrc-0ae91878cc451ce5d45bbec815db830e0bc4c591.tar.gz
src-0ae91878cc451ce5d45bbec815db830e0bc4c591.zip
When taking a snapshot on a UFS/FFS filesystem, it must be mounted.
PR: 265362 Sponsored by: The FreeBSD Foundation (cherry picked from commit 27d673fbbb79b1b829484ec127da59b45f623ebd)
-rw-r--r--sys/ufs/ffs/ffs_vfsops.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/ufs/ffs/ffs_vfsops.c b/sys/ufs/ffs/ffs_vfsops.c
index 5daf8e0e607e..2d5db7722a0f 100644
--- a/sys/ufs/ffs/ffs_vfsops.c
+++ b/sys/ufs/ffs/ffs_vfsops.c
@@ -440,8 +440,11 @@ ffs_mount(struct mount *mp)
/*
* If this is a snapshot request, take the snapshot.
*/
- if (mp->mnt_flag & MNT_SNAPSHOT)
+ if (mp->mnt_flag & MNT_SNAPSHOT) {
+ if ((mp->mnt_flag & MNT_UPDATE) == 0)
+ return (EINVAL);
return (ffs_snapshot(mp, fspec));
+ }
/*
* Must not call namei() while owning busy ref.