summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTheodore Ts'o <tytso@mit.edu>2012-03-03 17:56:23 -0500
committerTheodore Ts'o <tytso@mit.edu>2012-03-03 17:56:23 -0500
commit39ef17f1b0613b46c6973596525c2bc816d90b5b (patch)
treec07e2dcd3cd21d7d5db0203263e5efae63a02729
parentc64db50e76c4bf68c0a84379d7bd70daada531b4 (diff)
downloadlinux-39ef17f1b0613b46c6973596525c2bc816d90b5b.tar.bz2
ext4: simplify handling of the errors=* mount options
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
-rw-r--r--fs/ext4/ext4.h1
-rw-r--r--fs/ext4/super.c9
2 files changed, 4 insertions, 6 deletions
diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
index df93dc196514..d70b981b85fb 100644
--- a/fs/ext4/ext4.h
+++ b/fs/ext4/ext4.h
@@ -924,6 +924,7 @@ struct ext4_inode_info {
#define EXT4_MOUNT_ERRORS_CONT 0x00010 /* Continue on errors */
#define EXT4_MOUNT_ERRORS_RO 0x00020 /* Remount fs ro on errors */
#define EXT4_MOUNT_ERRORS_PANIC 0x00040 /* Panic on errors */
+#define EXT4_MOUNT_ERRORS_MASK 0x00070
#define EXT4_MOUNT_MINIX_DF 0x00080 /* Mimics the Minix statfs */
#define EXT4_MOUNT_NOLOAD 0x00100 /* Don't use existing journal*/
#define EXT4_MOUNT_DATA_FLAGS 0x00C00 /* Mode for data writes: */
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index 6b27bc6eba40..93cca1fa3903 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -1565,18 +1565,15 @@ static int parse_options(char *options, struct super_block *sb,
/* *sb_block = match_int(&args[0]); */
break;
case Opt_err_panic:
- clear_opt(sb, ERRORS_CONT);
- clear_opt(sb, ERRORS_RO);
+ clear_opt(sb, ERRORS_MASK);
set_opt(sb, ERRORS_PANIC);
break;
case Opt_err_ro:
- clear_opt(sb, ERRORS_CONT);
- clear_opt(sb, ERRORS_PANIC);
+ clear_opt(sb, ERRORS_MASK);
set_opt(sb, ERRORS_RO);
break;
case Opt_err_cont:
- clear_opt(sb, ERRORS_RO);
- clear_opt(sb, ERRORS_PANIC);
+ clear_opt(sb, ERRORS_MASK);
set_opt(sb, ERRORS_CONT);
break;
case Opt_nouid32: