aboutsummaryrefslogtreecommitdiff
path: root/sbin
diff options
context:
space:
mode:
authorDag-Erling Smørgrav <des@FreeBSD.org>2026-03-21 07:21:33 +0000
committerDag-Erling Smørgrav <des@FreeBSD.org>2026-03-21 07:21:45 +0000
commitb1f72dd2a9a5e69a310b9e76b55f16cff433b8da (patch)
tree830da3f0cd50a9d091dc8de7e155a813e6814c1b /sbin
parente30fcdaae2e68458da83d5420e6034c5f384e5f2 (diff)
Diffstat (limited to 'sbin')
-rw-r--r--sbin/tunefs/tunefs.88
-rw-r--r--sbin/tunefs/tunefs.c17
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 {