diff options
Diffstat (limited to 'fs/ext4/balloc.c')
| -rw-r--r-- | fs/ext4/balloc.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/fs/ext4/balloc.c b/fs/ext4/balloc.c index da994374ec3b..30494c5da843 100644 --- a/fs/ext4/balloc.c +++ b/fs/ext4/balloc.c | |||
| @@ -287,11 +287,11 @@ read_block_bitmap(struct super_block *sb, ext4_group_t block_group) | |||
| 287 | (int)block_group, (unsigned long long)bitmap_blk); | 287 | (int)block_group, (unsigned long long)bitmap_blk); |
| 288 | return NULL; | 288 | return NULL; |
| 289 | } | 289 | } |
| 290 | if (!ext4_valid_block_bitmap(sb, desc, block_group, bh)) { | 290 | ext4_valid_block_bitmap(sb, desc, block_group, bh); |
| 291 | put_bh(bh); | 291 | /* |
| 292 | return NULL; | 292 | * file system mounted not to panic on error, |
| 293 | } | 293 | * continue with corrupt bitmap |
| 294 | 294 | */ | |
| 295 | return bh; | 295 | return bh; |
| 296 | } | 296 | } |
| 297 | /* | 297 | /* |
| @@ -1770,7 +1770,12 @@ allocated: | |||
| 1770 | "Allocating block in system zone - " | 1770 | "Allocating block in system zone - " |
| 1771 | "blocks from %llu, length %lu", | 1771 | "blocks from %llu, length %lu", |
| 1772 | ret_block, num); | 1772 | ret_block, num); |
| 1773 | goto out; | 1773 | /* |
| 1774 | * claim_block marked the blocks we allocated | ||
| 1775 | * as in use. So we may want to selectively | ||
| 1776 | * mark some of the blocks as free | ||
| 1777 | */ | ||
| 1778 | goto retry_alloc; | ||
| 1774 | } | 1779 | } |
| 1775 | 1780 | ||
| 1776 | performed_allocation = 1; | 1781 | performed_allocation = 1; |
