Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso...
[linux-2.6-microblaze.git] / fs / ext4 / balloc.c
index 48c3df4..f45f9fe 100644 (file)
@@ -185,7 +185,7 @@ static int ext4_init_block_bitmap(struct super_block *sb,
        struct ext4_sb_info *sbi = EXT4_SB(sb);
        ext4_fsblk_t start, tmp;
 
-       J_ASSERT_BH(bh, buffer_locked(bh));
+       ASSERT(buffer_locked(bh));
 
        /* If checksum is bad mark all blocks used to prevent allocation
         * essentially implementing a per-group read-only flag. */
@@ -368,7 +368,12 @@ static int ext4_validate_block_bitmap(struct super_block *sb,
                                      struct buffer_head *bh)
 {
        ext4_fsblk_t    blk;
-       struct ext4_group_info *grp = ext4_get_group_info(sb, block_group);
+       struct ext4_group_info *grp;
+
+       if (EXT4_SB(sb)->s_mount_state & EXT4_FC_REPLAY)
+               return 0;
+
+       grp = ext4_get_group_info(sb, block_group);
 
        if (buffer_verified(bh))
                return 0;
@@ -495,10 +500,9 @@ ext4_read_block_bitmap_nowait(struct super_block *sb, ext4_group_t block_group,
         */
        set_buffer_new(bh);
        trace_ext4_read_block_bitmap_load(sb, block_group, ignore_locked);
-       bh->b_end_io = ext4_end_bitmap_read;
-       get_bh(bh);
-       submit_bh(REQ_OP_READ, REQ_META | REQ_PRIO |
-                 (ignore_locked ? REQ_RAHEAD : 0), bh);
+       ext4_read_bh_nowait(bh, REQ_META | REQ_PRIO |
+                           (ignore_locked ? REQ_RAHEAD : 0),
+                           ext4_end_bitmap_read);
        return bh;
 verify:
        err = ext4_validate_block_bitmap(sb, desc, block_group, bh);