Whamcloud - gitweb
e2fsck: allow the block bitmap to be uninit when the inode bitmap is in use
authorTheodore Ts'o <tytso@mit.edu>
Mon, 6 Feb 2012 18:47:48 +0000 (13:47 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Mon, 6 Feb 2012 18:47:48 +0000 (13:47 -0500)
Removing this check will allow us to eventually eliminate code from
the kernel which forcibly initialized the block bitmap when the inode
bitmap is first used.  This would eliminate a required journal credit
and extra disk write.

Addresses-Google-Bug: #5944440

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

index f042b89..579c838 100644 (file)
@@ -362,11 +362,6 @@ static struct e2fsck_problem problem_table[] = {
          N_("@g descriptor %g marked uninitialized without feature set.\n"),
             PROMPT_FIX, PR_PREEN_OK },
 
-       /* group N block bitmap uninitialized but inode bitmap in use. */
-       { PR_0_BB_UNINIT_IB_INIT,
-         N_("@g %g @b @B uninitialized but @i @B in use.\n"),
-            PROMPT_FIX, PR_PREEN_OK },
-
        /* Group descriptor N has invalid unused inodes count. */
        { PR_0_GDT_ITABLE_UNUSED,
          N_("@g descriptor %g has invalid unused inodes count %b.  "),
index 9db29d8..3fabc90 100644 (file)
@@ -203,8 +203,8 @@ struct problem_context {
 /* Group descriptor N marked uninitialized without feature set. */
 #define PR_0_GDT_UNINIT                                0x000036
 
-/* Block bitmap is not initialised and Inode bitmap is */
-#define PR_0_BB_UNINIT_IB_INIT                 0x000037
+/* Block bitmap is not initialised and Inode bitmap is -- NO LONGER USED */
+/* #define PR_0_BB_UNINIT_IB_INIT                      0x000037 */
 
 /* Group descriptor N has invalid unused inodes count. */
 #define PR_0_GDT_ITABLE_UNUSED                 0x000038
index afec4b4..3397d77 100644 (file)
@@ -666,15 +666,6 @@ void check_super_block(e2fsck_t ctx)
                        ext2fs_unmark_valid(fs);
                }
 
-               if (ext2fs_bg_flags_test(fs, i, EXT2_BG_BLOCK_UNINIT) &&
-                   !ext2fs_bg_flags_test(fs, i, EXT2_BG_INODE_UNINIT)) {
-                       if (fix_problem(ctx, PR_0_BB_UNINIT_IB_INIT, &pctx)) {
-                               ext2fs_bg_flags_clear(fs, i, EXT2_BG_BLOCK_UNINIT);
-                               should_be = 1;
-                       }
-                       ext2fs_unmark_valid(fs);
-               }
-
                if (csum_flag &&
                    (ext2fs_bg_itable_unused(fs, i) > ext2fs_bg_free_inodes_count(fs, i) ||
                     ext2fs_bg_itable_unused(fs, i) > sb->s_inodes_per_group)) {