2009-07-06 08:19:32

by Kazuya Mio

[permalink] [raw]
Subject: [PATCH 2/3] e2fsck: Fix loop counter properly

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);


2009-07-07 03:24:50

by Theodore Ts'o

[permalink] [raw]
Subject: Re: [PATCH 2/3] e2fsck: Fix loop counter properly

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