summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugh Dickins <hugh@veritas.com>2006-12-07 07:41:30 +0300
committerLinus Torvalds <torvalds@woody.osdl.org>2006-12-07 19:39:48 +0300
commit7d1c520bb57e4b5e94ec937c13553dccf473341b (patch)
tree6e6ff8db13b6b8a3c122553bd5b1d43c7498ad77
parent2823b5535efad71e950ef50c2ce5f9e4dbaedc17 (diff)
downloadlinux-7d1c520bb57e4b5e94ec937c13553dccf473341b.tar.xz
[PATCH] ext3 balloc: fix _with_rsv freeze
Port fix to the off-by-one in find_next_usable_block's memscan from ext2 to ext3; but it didn't cause a serious problem for ext3 because the additional ext3_test_allocatable check rescued it from the error. Signed-off-by: Mingming Cao <cmm@us.ibm.com> Signed-off-by: Hugh Dickins <hugh@veritas.com> Cc: <linux-ext4@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--fs/ext3/balloc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/ext3/balloc.c b/fs/ext3/balloc.c
index 5a2c198762f0..22161740ba29 100644
--- a/fs/ext3/balloc.c
+++ b/fs/ext3/balloc.c
@@ -730,7 +730,7 @@ find_next_usable_block(ext3_grpblk_t start, struct buffer_head *bh,
here = 0;
p = ((char *)bh->b_data) + (here >> 3);
- r = memscan(p, 0, (maxblocks - here + 7) >> 3);
+ r = memscan(p, 0, ((maxblocks + 7) >> 3) - (here >> 3));
next = (r - ((char *)bh->b_data)) << 3;
if (next < maxblocks && next >= start && ext3_test_allocatable(next, bh))