If unused range of the bitmap has an unmarked bit, check_[inode/block]_end()
marks all bits in the range. However, we know that the checked bits are marked.
So this patch fixes loop counter to mark from the unmarked bit.
Regards,
Kazuya Mio
Signed-off-by: Kazuya Mio <[email protected]>
---
pass5.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/e2fsck/pass5.c b/e2fsck/pass5.c
index e660386..8154e1e 100644
--- a/e2fsck/pass5.c
+++ b/e2fsck/pass5.c
@@ -567,7 +567,7 @@ static void check_inode_end(e2fsck_t ctx)
for (i = save_inodes_count + 1; i <= end && i > save_inodes_count; i++) {
if (!ext2fs_test_inode_bitmap(fs->inode_map, i)) {
if (fix_problem(ctx, PR_5_INODE_BMAP_PADDING, &pctx)) {
- for (i = save_inodes_count + 1; i <= end; i++)
+ for (; i <= end; i++)
ext2fs_mark_inode_bitmap(fs->inode_map,
i);
ext2fs_mark_ib_dirty(fs);
@@ -612,7 +612,7 @@ static void check_block_end(e2fsck_t ctx)
for (i = save_blocks_count + 1; i <= end && i > save_blocks_count; i++) {
if (!ext2fs_test_block_bitmap(fs->block_map, i)) {
if (fix_problem(ctx, PR_5_BLOCK_BMAP_PADDING, &pctx)) {
- for (i = save_blocks_count + 1; i <= end; i++)
+ for (; i <= end; i++)
ext2fs_mark_block_bitmap(fs->block_map,
i);
ext2fs_mark_bb_dirty(fs);
On Mon, Jul 06, 2009 at 05:15:24PM +0900, Kazuya Mio wrote:
> If unused range of the bitmap has an unmarked bit,
> check_[inode/block]_end() marks all bits in the range. However, we
> know that the checked bits are marked. So this patch fixes loop
> counter to mark from the unmarked bit.
Thanks, applied.
- Ted