ext4: simplify handling of the errors=* mount options
authorTheodore Ts'o <tytso@mit.edu>
Sat, 3 Mar 2012 22:56:23 +0000 (17:56 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Sat, 3 Mar 2012 22:56:23 +0000 (17:56 -0500)
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
fs/ext4/ext4.h
fs/ext4/super.c

index df93dc1..d70b981 100644 (file)
@@ -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: */
index 6b27bc6..93cca1f 100644 (file)
@@ -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: