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
This commit is contained in:
@@ -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
|
||||
|
||||
+13
-4
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user