git: 68562f8145e8 - main - newfs: Add an option to disable soft updates
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 11 Jan 2026 02:34:21 UTC
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;