]> git.ipfire.org Git - thirdparty/e2fsprogs.git/commitdiff
tune2fs: allow setting the filesystem error bit
authorDarrick J. Wong <darrick.wong@oracle.com>
Sat, 24 Mar 2018 01:57:02 +0000 (18:57 -0700)
committerTheodore Ts'o <tytso@mit.edu>
Sun, 5 Aug 2018 18:43:12 +0000 (14:43 -0400)
Allow the administrator to mark the filesystem's error bit to force a
fsck at the next mount.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Andreas Dilger <adilger@dilger.ca>
Reviewed-by: Lukas Czerner <lczerner@redhat.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
misc/tune2fs.8.in
misc/tune2fs.c

index 740d1661291a982bb96e646b71dcbce8062fad3f..f1def2bf75f6b973efb41e4bd4542cf2f78790c4 100644 (file)
@@ -238,6 +238,10 @@ program.
 This superblock setting is only honored in 2.6.35+ kernels;
 and not at all by the ext2 and ext3 file system drivers.
 .TP
+.B force_fsck
+Set a flag in the filesystem superblock indicating that errors have been found.
+This will force fsck to run at the next mount.
+.TP
 .B test_fs
 Set a flag in the filesystem superblock indicating that it may be
 mounted using experimental kernel code, such as the ext4dev filesystem.
index f1ddfe42c73e9272f42baa649dbff7df03b38392..4b673bc29aa900e8849d76b95d39b1dab66a93f2 100644 (file)
@@ -2118,6 +2118,10 @@ static int parse_extended_opts(ext2_filsys fs, const char *opts)
                               intv);
                        fs->super->s_mmp_update_interval = intv;
                        ext2fs_mark_super_dirty(fs);
+               } else if (!strcmp(token, "force_fsck")) {
+                       fs->super->s_state |= EXT2_ERROR_FS;
+                       printf(_("Setting filesystem error flag to force fsck.\n"));
+                       ext2fs_mark_super_dirty(fs);
                } else if (!strcmp(token, "test_fs")) {
                        fs->super->s_flags |= EXT2_FLAGS_TEST_FILESYS;
                        printf("Setting test filesystem flag\n");
@@ -2200,6 +2204,7 @@ static int parse_extended_opts(ext2_filsys fs, const char *opts)
                        "\tmmp_update_interval=<mmp update interval in seconds>\n"
                        "\tstride=<RAID per-disk chunk size in blocks>\n"
                        "\tstripe_width=<RAID stride*data disks in blocks>\n"
+                       "\tforce_fsck\n"
                        "\ttest_fs\n"
                        "\t^test_fs\n"));
                free(buf);