diff options
Diffstat (limited to 'fs')
-rw-r--r-- | fs/ext3/balloc.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/fs/ext3/balloc.c b/fs/ext3/balloc.c index dd4237e5e9ec..731fbc0f1291 100644 --- a/fs/ext3/balloc.c +++ b/fs/ext3/balloc.c | |||
@@ -164,10 +164,11 @@ read_block_bitmap(struct super_block *sb, unsigned int block_group) | |||
164 | block_group, le32_to_cpu(desc->bg_block_bitmap)); | 164 | block_group, le32_to_cpu(desc->bg_block_bitmap)); |
165 | return NULL; | 165 | return NULL; |
166 | } | 166 | } |
167 | if (!ext3_valid_block_bitmap(sb, desc, block_group, bh)) { | 167 | ext3_valid_block_bitmap(sb, desc, block_group, bh); |
168 | brelse(bh); | 168 | /* |
169 | return NULL; | 169 | * file system mounted not to panic on error, continue with corrupt |
170 | } | 170 | * bitmap |
171 | */ | ||
171 | return bh; | 172 | return bh; |
172 | } | 173 | } |
173 | /* | 174 | /* |
@@ -1641,7 +1642,11 @@ allocated: | |||
1641 | "Allocating block in system zone - " | 1642 | "Allocating block in system zone - " |
1642 | "blocks from "E3FSBLK", length %lu", | 1643 | "blocks from "E3FSBLK", length %lu", |
1643 | ret_block, num); | 1644 | ret_block, num); |
1644 | goto out; | 1645 | /* |
1646 | * claim_block() marked the blocks we allocated as in use. So we | ||
1647 | * may want to selectively mark some of the blocks as free. | ||
1648 | */ | ||
1649 | goto retry_alloc; | ||
1645 | } | 1650 | } |
1646 | 1651 | ||
1647 | performed_allocation = 1; | 1652 | performed_allocation = 1; |