Whamcloud - gitweb
e2fsck: check a file system mounted read-only if forced
authorTheodore Ts'o <tytso@mit.edu>
Sun, 29 Jul 2012 04:16:44 +0000 (00:16 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Sun, 29 Jul 2012 04:16:44 +0000 (00:16 -0400)
Previously e2fsck would only allow a mounted file system to be checked
if it was the root file system and it was mounted read-only.  Now
allow any file system mounted read-only if the -f option is specified.

This makes it easier to test how e2fsck handles checking file systems
which are mounted without having to test on the root file system.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
e2fsck/unix.c

index f71a125..da41f69 100644 (file)
@@ -225,7 +225,9 @@ static void check_mount(e2fsck_t ctx)
             !(ctx->options & E2F_OPT_WRITECHECK)))
                return;
 
-       if ((ctx->options & E2F_OPT_READONLY) &&
+       if (((ctx->options & E2F_OPT_READONLY) ||
+            ((ctx->options & E2F_OPT_FORCE) &&
+             (ctx->mount_flags & EXT2_MF_READONLY))) &&
            !(ctx->options & E2F_OPT_WRITECHECK)) {
                log_out(ctx, _("Warning!  %s is %s.\n"),
                        ctx->filesystem_name,
@@ -1226,6 +1228,9 @@ restart:
                if (!(ctx->mount_flags & EXT2_MF_ISROOT &&
                      ctx->mount_flags & EXT2_MF_READONLY))
                        flags |= EXT2_FLAG_EXCLUSIVE;
+               if ((ctx->mount_flags & EXT2_MF_READONLY) &&
+                   (ctx->options & E2F_OPT_FORCE))
+                       flags &= ~EXT2_FLAG_EXCLUSIVE;
        }
 
        retval = try_open_fs(ctx, flags, io_ptr, &fs);