Patchwork [06/10] e2fsck: fix pass5 bug when using two different bitmap backends

login
register
mail settings
Submitter Theodore Ts'o
Date Dec. 18, 2011, 6:42 a.m.
Message ID <1324190558-7436-7-git-send-email-tytso@mit.edu>
Download mbox | patch
Permalink /patch/132046/
State Accepted
Headers show

Comments

Theodore Ts'o - Dec. 18, 2011, 6:42 a.m.
The pass5 checks would fail if the expected and current {inode,block}
bitmaps used different back ends that returned different non-zero
values from the test_*_bitmap() functions.  Fix this by changing
"(actual == bitmap)" to "(!actual == !bitmap)".

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
---
 e2fsck/pass5.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

Patch

diff --git a/e2fsck/pass5.c b/e2fsck/pass5.c
index a60e84a..1e836e3 100644
--- a/e2fsck/pass5.c
+++ b/e2fsck/pass5.c
@@ -279,7 +279,7 @@  redo_counts:
 		else
 			bitmap = ext2fs_fast_test_block_bitmap2(fs->block_map, i);
 
-		if (actual == bitmap)
+		if (!actual == !bitmap)
 			goto do_counts;
 
 		if (!actual && bitmap) {
@@ -511,7 +511,7 @@  redo_counts:
 			bitmap = actual;
 		else if (!skip_group)
 			bitmap = ext2fs_fast_test_inode_bitmap2(fs->inode_map, i);
-		if (actual == bitmap)
+		if (!actual == !bitmap)
 			goto do_counts;
 
 		if (!actual && bitmap) {