[PATCH] EXT3: ext3 block bitmap leakage

Linux Kernel Mailing List <[email protected]> Fri, 28 Jul 2006 23:59:02 GMT
Newsgroups gmane.linux.kernel.commits.2-4
Message-ID <[email protected]>
commit 8c6f6cf38bc9b04edc69c2869ae1e6c584584b4f
tree 6c0b96f16cd28413b1d13150b29a26a7d39c42f4
parent 27cd4ebe6d1443a74234f05f87b91b2b2f8878a1
author Kirill Korotaev <[email protected]> Fri, 30 Jun 2006 13:41:05 +0400
committer Willy Tarreau <[email protected]> Sat, 01 Jul 2006 07:29:09 +0200

[PATCH] EXT3: ext3 block bitmap leakage

This patch fixes ext3 block bitmap leakage,
which leads to the following fsck messages on
_healthy_ filesystem:
Block bitmap differences:  -64159 -73707

All kernels up to 2.6.17 have this bug.

Found by
   Vasily Averin <[email protected]> and Andrey Savochkin <[email protected]>
Test case triggered the issue was created by
   Dmitry Monakhov <[email protected]>

Signed-Off-By: Vasiliy Averin <[email protected]>
Signed-Off-By: Andrey Savochkin <[email protected]>
Signed-Off-By: Kirill Korotaev <[email protected]>
CC: Dmitry Monakhov <[email protected]>

 fs/ext3/inode.c |    1 +
 1 files changed, 1 insertion(+)

diff --git a/fs/ext3/inode.c b/fs/ext3/inode.c
index bcd86f6..d8f5a9b 100644
--- a/fs/ext3/inode.c
+++ b/fs/ext3/inode.c
@@ -570,6 +570,7 @@ static int ext3_alloc_branch(handle_t *h
 
 	branch[0].key = cpu_to_le32(parent);
 	if (parent) {
+		keys = 1;
 		for (n = 1; n < num; n++) {
 			struct buffer_head *bh;
 			/* Allocate the next block */