|
@@ -164,10 +164,11 @@ read_block_bitmap(struct super_block *sb, unsigned int block_group)
|
|
|
block_group, le32_to_cpu(desc->bg_block_bitmap));
|
|
|
return NULL;
|
|
|
}
|
|
|
- if (!ext3_valid_block_bitmap(sb, desc, block_group, bh)) {
|
|
|
- brelse(bh);
|
|
|
- return NULL;
|
|
|
- }
|
|
|
+ ext3_valid_block_bitmap(sb, desc, block_group, bh);
|
|
|
+ /*
|
|
|
+ * file system mounted not to panic on error, continue with corrupt
|
|
|
+ * bitmap
|
|
|
+ */
|
|
|
return bh;
|
|
|
}
|
|
|
/*
|
|
@@ -1641,7 +1642,11 @@ allocated:
|
|
|
"Allocating block in system zone - "
|
|
|
"blocks from "E3FSBLK", length %lu",
|
|
|
ret_block, num);
|
|
|
- goto out;
|
|
|
+ /*
|
|
|
+ * claim_block() marked the blocks we allocated as in use. So we
|
|
|
+ * may want to selectively mark some of the blocks as free.
|
|
|
+ */
|
|
|
+ goto retry_alloc;
|
|
|
}
|
|
|
|
|
|
performed_allocation = 1;
|