lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Mon, 12 Mar 2018 09:14:40 -0700
From:   "Darrick J. Wong" <darrick.wong@...cle.com>
To:     tytso@....edu, darrick.wong@...cle.com
Cc:     Andreas Dilger <adilger@...ger.ca>,
        Lukas Czerner <lczerner@...hat.com>, linux-ext4@...r.kernel.org
Subject: [PATCH 1/4] tune2fs: allow setting the filesystem error bit

From: Darrick J. Wong <darrick.wong@...cle.com>

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@...cle.com>
Reviewed-by: Andreas Dilger <adilger@...ger.ca>
Reviewed-by: Lukas Czerner <lczerner@...hat.com>
---
 misc/tune2fs.8.in |    4 ++++
 misc/tune2fs.c    |    5 +++++
 2 files changed, 9 insertions(+)


diff --git a/misc/tune2fs.8.in b/misc/tune2fs.8.in
index 740d166..f1def2b 100644
--- a/misc/tune2fs.8.in
+++ b/misc/tune2fs.8.in
@@ -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.
diff --git a/misc/tune2fs.c b/misc/tune2fs.c
index 93160c9..ea84e1e 100644
--- a/misc/tune2fs.c
+++ b/misc/tune2fs.c
@@ -2117,6 +2117,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");
@@ -2199,6 +2203,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);

Powered by blists - more mailing lists