You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
2.1 KiB
60 lines
2.1 KiB
6 years ago
|
commit 0462fd6db55de28d7e087d8d06ab20339acd8f67
|
||
|
Author: Eric Sandeen <sandeen@sandeen.net>
|
||
|
Date: Sun Dec 14 19:08:59 2014 -0500
|
||
|
|
||
|
resize2fs: don't require fsck to print min size
|
||
|
|
||
|
My previous change ended up requiring that the filesystem
|
||
|
be fsck'd after the last mount, even if we are only querying
|
||
|
the minimum size. This is a bit draconian, and it burned
|
||
|
the Fedora installer, which wants to calculate minimum size
|
||
|
for every filesystem in the box at install time, which in turn
|
||
|
requires a full fsck of every filesystem.
|
||
|
|
||
|
Try this one more time, and separate out the tests to make things
|
||
|
a bit more clear. If we're only printing the min size, don't
|
||
|
require the fsck, as this is a bit less dangerous/critical.
|
||
|
|
||
|
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
|
||
|
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
|
||
|
|
||
|
Index: e2fsprogs-1.42.9/resize/main.c
|
||
|
===================================================================
|
||
|
--- e2fsprogs-1.42.9.orig/resize/main.c
|
||
|
+++ e2fsprogs-1.42.9/resize/main.c
|
||
|
@@ -319,10 +319,30 @@ int main (int argc, char ** argv)
|
||
|
exit (1);
|
||
|
}
|
||
|
|
||
|
- if (!(mount_flags & EXT2_MF_MOUNTED)) {
|
||
|
- if (!force && ((fs->super->s_lastcheck < fs->super->s_mtime) ||
|
||
|
- (fs->super->s_state & EXT2_ERROR_FS) ||
|
||
|
- ((fs->super->s_state & EXT2_VALID_FS) == 0))) {
|
||
|
+ /*
|
||
|
+ * Before acting on an unmounted filesystem, make sure it's ok,
|
||
|
+ * unless the user is forcing it.
|
||
|
+ *
|
||
|
+ * We do ERROR and VALID checks even if we're only printing the
|
||
|
+ * minimimum size, because traversal of a badly damaged filesystem
|
||
|
+ * can cause issues as well. We don't require it to be fscked after
|
||
|
+ * the last mount time in this case, though, as this is a bit less
|
||
|
+ * risky.
|
||
|
+ */
|
||
|
+ if (!force && !(mount_flags & EXT2_MF_MOUNTED)) {
|
||
|
+ int checkit = 0;
|
||
|
+
|
||
|
+ if (fs->super->s_state & EXT2_ERROR_FS)
|
||
|
+ checkit = 1;
|
||
|
+
|
||
|
+ if ((fs->super->s_state & EXT2_VALID_FS) == 0)
|
||
|
+ checkit = 1;
|
||
|
+
|
||
|
+ if ((fs->super->s_lastcheck < fs->super->s_mtime) &&
|
||
|
+ !print_min_size)
|
||
|
+ checkit = 1;
|
||
|
+
|
||
|
+ if (checkit) {
|
||
|
fprintf(stderr,
|
||
|
_("Please run 'e2fsck -f %s' first.\n\n"),
|
||
|
device_name);
|