git: 78f412987605 - main - Enable taking snapshots on UFS/FFS filesystems using journaled soft updates.

From: Kirk McKusick <mckusick_at_FreeBSD.org>
Date: Sun, 13 Nov 2022 07:02:31 UTC
The branch main has been updated by mckusick:

URL: https://cgit.FreeBSD.org/src/commit/?id=78f41298760509f5c2b5865b2158c801d4023363

commit 78f41298760509f5c2b5865b2158c801d4023363
Author:     Kirk McKusick <mckusick@FreeBSD.org>
AuthorDate: 2022-11-13 06:56:03 +0000
Commit:     Kirk McKusick <mckusick@FreeBSD.org>
CommitDate: 2022-11-13 06:56:03 +0000

    Enable taking snapshots on UFS/FFS filesystems using journaled soft updates.
    
    All the needed infrastructure updates have been made to allow
    snapshots to be taken on UFS/FFS filesystems that are using journaled
    soft updates. The most immediate benefit is the ability to use a
    snapshot to take a consistent filesystem dump on a live filesystem
    using the -L option to dump(8).
    
    Sponsored by: The FreeBSD Foundation
    Differential Revision: https://reviews.freebsd.org/D36491
---
 sbin/newfs/newfs.8         | 4 +---
 sbin/tunefs/tunefs.8       | 4 +---
 sys/ufs/ffs/ffs_snapshot.c | 9 ---------
 3 files changed, 2 insertions(+), 15 deletions(-)

diff --git a/sbin/newfs/newfs.8 b/sbin/newfs/newfs.8
index a065563f86d1..9421971a74f5 100644
--- a/sbin/newfs/newfs.8
+++ b/sbin/newfs/newfs.8
@@ -205,9 +205,7 @@ is running.
 Running a full fsck on a UFS filesystem is the equivalent of
 running a scrub on a ZFS filesystem.
 .Pp
-Presently it is not possible to take a snapshot on a UFS filesystem
-running with journaled soft updates.
-Thus it is not possible to reliably dump mounted filesystems or
+Presently it is not possible
 to run background fsck on filesystems enabled for journaling.
 .It Fl k Ar held-for-metadata-blocks
 Set the amount of space to be held for metadata blocks in each cylinder group.
diff --git a/sbin/tunefs/tunefs.8 b/sbin/tunefs/tunefs.8
index b9a581df6784..0264c3e5f772 100644
--- a/sbin/tunefs/tunefs.8
+++ b/sbin/tunefs/tunefs.8
@@ -131,9 +131,7 @@ is running.
 Running a full fsck on a UFS filesystem is the equivalent of
 running a scrub on a ZFS filesystem.
 .Pp
-Presently it is not possible to take a snapshot on a UFS filesystem
-running with journaled soft updates.
-Thus it is not possible to reliably dump mounted filesystems or
+Presently it is not possible
 to run background fsck on filesystems enabled for journaling.
 .It Fl J Cm enable | disable
 Turn on/off gjournal flag.
diff --git a/sys/ufs/ffs/ffs_snapshot.c b/sys/ufs/ffs/ffs_snapshot.c
index bcdf94a10cda..7ee5dd2bfa43 100644
--- a/sys/ufs/ffs/ffs_snapshot.c
+++ b/sys/ufs/ffs/ffs_snapshot.c
@@ -226,15 +226,6 @@ ffs_snapshot(struct mount *mp, char *snapfile)
 	ump = VFSTOUFS(mp);
 	fs = ump->um_fs;
 	sn = NULL;
-	/*
-	 * At the moment, journaled soft updates cannot support
-	 * taking snapshots.
-	 */
-	if (MOUNTEDSUJ(mp)) {
-		vfs_mount_error(mp, "%s: Snapshots are not yet supported when "
-		    "running with journaled soft updates", fs->fs_fsmnt);
-		return (EOPNOTSUPP);
-	}
 	MNT_ILOCK(mp);
 	flag = mp->mnt_flag;
 	MNT_IUNLOCK(mp);