diff options
Diffstat (limited to 'fs/ext4/balloc.c')
-rw-r--r-- | fs/ext4/balloc.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/fs/ext4/balloc.c b/fs/ext4/balloc.c index 495ab21b9832..1ae5004e93fc 100644 --- a/fs/ext4/balloc.c +++ b/fs/ext4/balloc.c | |||
@@ -314,25 +314,28 @@ ext4_read_block_bitmap(struct super_block *sb, ext4_group_t block_group) | |||
314 | if (unlikely(!bh)) { | 314 | if (unlikely(!bh)) { |
315 | ext4_error(sb, __func__, | 315 | ext4_error(sb, __func__, |
316 | "Cannot read block bitmap - " | 316 | "Cannot read block bitmap - " |
317 | "block_group = %d, block_bitmap = %llu", | 317 | "block_group = %lu, block_bitmap = %llu", |
318 | (int)block_group, (unsigned long long)bitmap_blk); | 318 | block_group, bitmap_blk); |
319 | return NULL; | 319 | return NULL; |
320 | } | 320 | } |
321 | if (bh_uptodate_or_lock(bh)) | 321 | if (bh_uptodate_or_lock(bh)) |
322 | return bh; | 322 | return bh; |
323 | 323 | ||
324 | spin_lock(sb_bgl_lock(EXT4_SB(sb), block_group)); | ||
324 | if (desc->bg_flags & cpu_to_le16(EXT4_BG_BLOCK_UNINIT)) { | 325 | if (desc->bg_flags & cpu_to_le16(EXT4_BG_BLOCK_UNINIT)) { |
325 | ext4_init_block_bitmap(sb, bh, block_group, desc); | 326 | ext4_init_block_bitmap(sb, bh, block_group, desc); |
326 | set_buffer_uptodate(bh); | 327 | set_buffer_uptodate(bh); |
327 | unlock_buffer(bh); | 328 | unlock_buffer(bh); |
329 | spin_unlock(sb_bgl_lock(EXT4_SB(sb), block_group)); | ||
328 | return bh; | 330 | return bh; |
329 | } | 331 | } |
332 | spin_unlock(sb_bgl_lock(EXT4_SB(sb), block_group)); | ||
330 | if (bh_submit_read(bh) < 0) { | 333 | if (bh_submit_read(bh) < 0) { |
331 | put_bh(bh); | 334 | put_bh(bh); |
332 | ext4_error(sb, __func__, | 335 | ext4_error(sb, __func__, |
333 | "Cannot read block bitmap - " | 336 | "Cannot read block bitmap - " |
334 | "block_group = %d, block_bitmap = %llu", | 337 | "block_group = %lu, block_bitmap = %llu", |
335 | (int)block_group, (unsigned long long)bitmap_blk); | 338 | block_group, bitmap_blk); |
336 | return NULL; | 339 | return NULL; |
337 | } | 340 | } |
338 | ext4_valid_block_bitmap(sb, desc, block_group, bh); | 341 | ext4_valid_block_bitmap(sb, desc, block_group, bh); |