]> git.ipfire.org Git - thirdparty/e2fsprogs.git/commitdiff
e2fsprogs-i_size-corruption.patch
authorAndreas Dilger <adilger@sun.com>
Sat, 2 Feb 2008 08:54:11 +0000 (01:54 -0700)
committerTheodore Ts'o <tytso@mit.edu>
Mon, 11 Feb 2008 03:49:43 +0000 (22:49 -0500)
Fix handling of block preallocation support in cases where the kernel
PAGE_SIZE is larger than the filesystem blocksize.

Signed-off-by: Kalpak Shah <kalpak@clusterfs.com>
Signed-off-by: Andreas Dilger <adilger@clusterfs.com>
e2fsck/pass1.c

index 3b278b5d10c36b792a74bd30c659d5ecd01192d7..cf822cd08646202eec515cff803014a95db848df 100644 (file)
@@ -2115,7 +2115,7 @@ static void check_blocks(e2fsck_t ctx, struct problem_context *pctx,
                if ((pb.last_block >= 0) &&
                    /* allow allocated blocks to end of PAGE_SIZE */
                    (size < (__u64)pb.last_block * fs->blocksize) &&
-                   (pb.last_block / blkpg * blkpg != pb.last_block ||
+                   ((pb.last_block+1) / blkpg * blkpg != (pb.last_block+1) ||
                     size < (__u64)(pb.last_block & ~(blkpg-1)) *fs->blocksize))
                        bad_size = 3;
                else if (size > ext2_max_sizes[fs->super->s_log_block_size])