Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 11 Jan 2026 02:34:21 +0000
From:      Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav <des@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 68562f8145e8 - main - newfs: Add an option to disable soft updates
Message-ID:  <69630c2d.b582.7d7d1621@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by des:

URL: https://cgit.FreeBSD.org/src/commit/?id=68562f8145e8154e7e276897a546995f0d8f3428

commit 68562f8145e8154e7e276897a546995f0d8f3428
Author:     Dag-Erling Smørgrav <des@FreeBSD.org>
AuthorDate: 2026-01-11 02:34:00 +0000
Commit:     Dag-Erling Smørgrav <des@FreeBSD.org>
CommitDate: 2026-01-11 02:34:18 +0000

    newfs: Add an option to disable soft updates
    
    A previous commit turned soft updates on by default for UFS2 without
    providing a way to turn them off.  This corrects that by adding a new -u
    flag which forces soft updates (and soft updates journaling) off.
    
    MFC after:      1 week
    Sponsored by:   Klara, Inc.
    Sponsored by:   NetApp, Inc.
    Fixes:          61dece6d27fb ("Enable soft updates by default for UFS2 filesystems.")
    Reviewed by:    mckusick
    Differential Revision:  https://reviews.freebsd.org/D54576
---
 sbin/newfs/newfs.8 | 24 ++++++++++++++++++------
 sbin/newfs/newfs.c |  9 ++++++---
 2 files changed, 24 insertions(+), 9 deletions(-)

diff --git a/sbin/newfs/newfs.8 b/sbin/newfs/newfs.8
index 16bca26f7cd8..6416e0f0ec8d 100644
--- a/sbin/newfs/newfs.8
+++ b/sbin/newfs/newfs.8
@@ -25,7 +25,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.Dd January 23, 2025
+.Dd January 7, 2026
 .Dt NEWFS 8
 .Os
 .Sh NAME
@@ -33,7 +33,7 @@
 .Nd construct a new UFS1/UFS2 file system
 .Sh SYNOPSIS
 .Nm
-.Op Fl EJNUjlnt
+.Op Fl EJNUjlntu
 .Op Fl L Ar volname
 .Op Fl O Ar filesystem-type
 .Op Fl S Ar sector-size
@@ -98,10 +98,20 @@ The default format is UFS2.
 For backward compatibility.
 .It Fl U
 Enable soft updates on the new file system.
-Soft updates are enabled by default for UFS2 format file systems.
-Use
-.Xr tunefs 8
-to disable soft updates if they are not wanted.
+If neither
+.Fl U
+nor
+.Fl u
+is specified, soft updates are enabled by default for UFS2 format file
+systems and disabled otherwise.
+.It Fl u
+Do not enable soft updates on the new file system.
+If neither
+.Fl U
+nor
+.Fl u
+is specified, soft updates are enabled by default for UFS2 format file
+systems and disabled otherwise.
 .It Fl a Ar maxcontig
 Specify the maximum number of contiguous blocks that will be
 laid out before forcing a rotational delay.
@@ -166,6 +176,8 @@ One inode is required for each distinct file, so this value effectively
 specifies the average file size on the file system.
 .It Fl j
 Enable soft updates journaling on the new file system.
+This implies
+.Fl U .
 This flag is implemented by running the
 .Xr tunefs 8
 utility found in the user's
diff --git a/sbin/newfs/newfs.c b/sbin/newfs/newfs.c
index 418319d1cd3a..61448dd1fce3 100644
--- a/sbin/newfs/newfs.c
+++ b/sbin/newfs/newfs.c
@@ -76,7 +76,7 @@ int	Lflag;			/* add a volume label */
 int	Nflag;			/* run without writing file system */
 int	Oflag = 2;		/* file system format (1 => UFS1, 2 => UFS2) */
 int	Rflag;			/* regression test */
-int	Uflag;			/* enable soft updates for file system */
+int	Uflag = -1;		/* enable soft updates for file system */
 int	jflag;			/* enable soft updates journaling for filesys */
 int	Xflag = 0;		/* exit in middle of newfs for testing */
 int	Jflag;			/* enable gjournal for file system */
@@ -179,6 +179,9 @@ main(int argc, char *argv[])
 		case 'U':
 			Uflag = 1;
 			break;
+		case 'u':
+			Uflag = 0;
+			break;
 		case 'X':
 			Xflag++;
 			break;
@@ -386,8 +389,8 @@ main(int argc, char *argv[])
 		opt = FS_OPTSPACE;
 	}
 	/* Use soft updates by default for UFS2 and above */
-	if (Oflag > 1)
-		Uflag = 1;
+	if (Uflag < 0)
+		Uflag = Oflag > 1;
 	realsectorsize = sectorsize;
 	if (sectorsize != DEV_BSIZE) {		/* XXX */
 		int secperblk = sectorsize / DEV_BSIZE;


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69630c2d.b582.7d7d1621>