git: b1f72dd2a9a5 - main - tunefs: Don't combine GEOM journaling with SU
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 21 Mar 2026 07:22:09 UTC
The branch main has been updated by des:
URL: https://cgit.FreeBSD.org/src/commit/?id=b1f72dd2a9a5e69a310b9e76b55f16cff433b8da
commit b1f72dd2a9a5e69a310b9e76b55f16cff433b8da
Author: Dag-Erling Smørgrav <des@FreeBSD.org>
AuthorDate: 2026-03-21 07:21:33 +0000
Commit: Dag-Erling Smørgrav <des@FreeBSD.org>
CommitDate: 2026-03-21 07:21:45 +0000
tunefs: Don't combine GEOM journaling with SU
GEOM journaling shouldn't be used at the same time as soft updates, so
don't enable one if the other is already in use.
MFC after: 1 week
PR: 293896
Reviewed by: mckusick
Differential Revision: https://reviews.freebsd.org/D56002
---
sbin/tunefs/tunefs.8 | 8 ++++++--
sbin/tunefs/tunefs.c | 17 +++++++++++++----
2 files changed, 19 insertions(+), 6 deletions(-)
diff --git a/sbin/tunefs/tunefs.8 b/sbin/tunefs/tunefs.8
index 0fb11041d97d..8c2d0bbf5d1d 100644
--- a/sbin/tunefs/tunefs.8
+++ b/sbin/tunefs/tunefs.8
@@ -25,7 +25,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd November 17, 2023
+.Dd March 20, 2026
.Dt TUNEFS 8
.Os
.Sh NAME
@@ -92,6 +92,8 @@ this parameter should be set higher.
Specify the expected average file size.
.It Fl j Cm enable | disable
Turn on/off soft updates journaling.
+Enabling soft updates journaling implies enabling soft updates and is
+incompatible with GEOM journaling.
.Pp
Enabling journaling reduces the time spent by
.Xr fsck_ffs 8
@@ -128,7 +130,8 @@ is running.
Running a full fsck on a UFS filesystem is the equivalent of
running a scrub on a ZFS filesystem.
.It Fl J Cm enable | disable
-Turn on/off gjournal flag.
+Turn on/off GEOM journaling.
+GEOM journaling is incompatible with soft updates.
.It Fl k Ar held-for-metadata-blocks
Set the amount of space to be held for metadata blocks.
When set, the file system preference routines will try to save
@@ -171,6 +174,7 @@ been deleted to get under the higher threshold.
Turn on/off the administrative NFSv4 ACL enable flag.
.It Fl n Cm enable | disable
Turn on/off soft updates.
+Soft updates are incompatible with GEOM journaling.
.It Fl o Cm space | time
The file system can either try to minimize the time spent
allocating blocks, or it can attempt to minimize the space
diff --git a/sbin/tunefs/tunefs.c b/sbin/tunefs/tunefs.c
index 6f6df8446cd9..d5ef366e8221 100644
--- a/sbin/tunefs/tunefs.c
+++ b/sbin/tunefs/tunefs.c
@@ -358,6 +358,9 @@ main(int argc, char *argv[])
if ((sblock.fs_flags & (FS_DOSOFTDEP | FS_SUJ)) ==
(FS_DOSOFTDEP | FS_SUJ)) {
warnx("%s remains unchanged as enabled", name);
+ } else if (sblock.fs_flags & FS_GJOURNAL) {
+ warnx("%s cannot be enabled while GEOM "
+ "journaling is enabled", name);
} else if (sblock.fs_clean == 0) {
warnx("%s cannot be enabled until fsck is run",
name);
@@ -386,6 +389,9 @@ main(int argc, char *argv[])
if (strcmp(Jvalue, "enable") == 0) {
if (sblock.fs_flags & FS_GJOURNAL) {
warnx("%s remains unchanged as enabled", name);
+ } if (sblock.fs_flags & FS_DOSOFTDEP) {
+ warnx("%s cannot be enabled while soft "
+ "updates are enabled", name);
} else {
sblock.fs_flags |= FS_GJOURNAL;
warnx("%s set", name);
@@ -403,9 +409,9 @@ main(int argc, char *argv[])
}
if (kflag) {
name = "space to hold for metadata blocks";
- if (sblock.fs_metaspace == kvalue)
+ if (sblock.fs_metaspace == kvalue) {
warnx("%s remains unchanged as %d", name, kvalue);
- else {
+ } else {
kvalue = blknum(&sblock, kvalue);
if (kvalue > sblock.fs_fpg / 2) {
kvalue = blknum(&sblock, sblock.fs_fpg / 2);
@@ -477,9 +483,12 @@ main(int argc, char *argv[])
if (nflag) {
name = "soft updates";
if (strcmp(nvalue, "enable") == 0) {
- if (sblock.fs_flags & FS_DOSOFTDEP)
+ if (sblock.fs_flags & FS_DOSOFTDEP) {
warnx("%s remains unchanged as enabled", name);
- else if (sblock.fs_clean == 0) {
+ } else if (sblock.fs_flags & FS_GJOURNAL) {
+ warnx("%s cannot be enabled while GEOM "
+ "journaling is enabled", name);
+ } else if (sblock.fs_clean == 0) {
warnx("%s cannot be enabled until fsck is run",
name);
} else {