|
@@ -882,10 +882,8 @@ static int ext4_mb_init_cache(struct page *page, char *incore)
|
|
|
|
|
|
/* wait for I/O completion */
|
|
|
for (i = 0, group = first_group; i < groups_per_page; i++, group++) {
|
|
|
- if (bh[i] && ext4_wait_block_bitmap(sb, group, bh[i])) {
|
|
|
+ if (bh[i] && ext4_wait_block_bitmap(sb, group, bh[i]))
|
|
|
err = -EIO;
|
|
|
- goto out;
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
first_block = page->index * blocks_per_page;
|
|
@@ -898,6 +896,11 @@ static int ext4_mb_init_cache(struct page *page, char *incore)
|
|
|
/* skip initialized uptodate buddy */
|
|
|
continue;
|
|
|
|
|
|
+ if (!buffer_verified(bh[group - first_group]))
|
|
|
+ /* Skip faulty bitmaps */
|
|
|
+ continue;
|
|
|
+ err = 0;
|
|
|
+
|
|
|
/*
|
|
|
* data carry information regarding this
|
|
|
* particular group in the format specified
|