Whamcloud - gitweb
e2fsck: allow checking on mounted root fs
authorAndreas Dilger <adilger@whamcloud.com>
Thu, 31 May 2012 20:39:54 +0000 (16:39 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Thu, 31 May 2012 20:41:41 +0000 (16:41 -0400)
Commit 732e26b98e5c79a4298dbe341f43b54b354bb241 added checks to
prevent e2fsck from being run in filesystem-modifying mode against
a mounted or otherwise busy device, due to several bug reports of
users doing this even with the verbose warnings in check_mount().

However, it also prevented e2fsck from checking a mounted root
filesystem, which will prevent the node from booting.  Once again
allow e2fsck to run against the mounted root filesystem if it is
also mounted read-only at the time.

Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
e2fsck/unix.c

index 6161e46..94260bd 100644 (file)
@@ -1221,8 +1221,12 @@ restart:
                            &old_bitmaps);
        if (!old_bitmaps)
                flags |= EXT2_FLAG_64BITS;
-       if ((ctx->options & E2F_OPT_READONLY) == 0)
-               flags |= EXT2_FLAG_RW | EXT2_FLAG_EXCLUSIVE;
+       if ((ctx->options & E2F_OPT_READONLY) == 0) {
+               flags |= EXT2_FLAG_RW;
+               if (!(ctx->mount_flags & EXT2_MF_ISROOT &&
+                     ctx->mount_flags & EXT2_MF_READONLY))
+                       flags |= EXT2_FLAG_EXCLUSIVE;
+       }
 
        retval = try_open_fs(ctx, flags, io_ptr, &fs);