linux/fs/ext2
Eric Sandeen 780dcdb211 fix inode_table test in ext234_check_descriptors
ext[234]_check_descriptors sanity checks block group descriptor geometry at
mount time, testing whether the block bitmap, inode bitmap, and inode table
reside wholly within the blockgroup.  However, the inode table test is off
by one so that if the last block in the inode table resides on the last
block of the block group, the test incorrectly fails.  This is because it
tests the last block as (start + length) rather than (start + length - 1).

This can be seen by trying to mount a filesystem made such as:

 mkfs.ext2 -F -b 1024 -m 0 -g 256 -N 3744 fsfile 1024

which yields:

 EXT2-fs error (device loop0): ext2_check_descriptors: Inode table for group 0 not in group (block 101)!
 EXT2-fs: group descriptors corrupted!

There is a similar bug in e2fsprogs, patch already sent for that.

(I wonder if inside(), outside(), and/or in_range() should someday be
used in this and other tests throughout the ext filesystems...)

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Cc: <linux-ext4@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-07-26 11:35:17 -07:00
..
acl.c Introduce is_owner_or_cap() to wrap CAP_FOWNER use with fsuid check 2007-07-17 12:00:03 -07:00
acl.h
balloc.c [PATCH] ext[234]: update documentation 2007-02-20 17:10:14 -08:00
dir.c header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
ext2.h ext3: copy i_flags to inode flags on write 2007-05-08 11:15:13 -07:00
file.c ext2: fix a comment when ext2_release_file() is called 2007-07-16 09:05:44 -07:00
fsync.c header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
ialloc.c [PATCH] inode-diet: Eliminate i_blksize from the inode structure 2006-09-27 08:26:18 -07:00
inode.c ext3: copy i_flags to inode flags on write 2007-05-08 11:15:13 -07:00
ioctl.c Introduce is_owner_or_cap() to wrap CAP_FOWNER use with fsuid check 2007-07-17 12:00:03 -07:00
Makefile [PATCH] Make EXT2_DEBUG work again 2006-06-25 10:01:12 -07:00
namei.c [PATCH] mark struct inode_operations const 1 2007-02-12 09:48:46 -08:00
super.c fix inode_table test in ext234_check_descriptors 2007-07-26 11:35:17 -07:00
symlink.c [PATCH] mark struct inode_operations const 1 2007-02-12 09:48:46 -08:00
xattr_security.c header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
xattr_trusted.c header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
xattr_user.c [PATCH] remove ext2 xattr permission checks 2006-01-10 08:01:30 -08:00
xattr.c [PATCH] Remove superfluous lock_super() in extN xattr code 2006-12-07 08:39:32 -08:00
xattr.h Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
xip.c [PATCH] fix xip sparse file handling in ext2 2005-07-27 16:25:53 -07:00
xip.h [PATCH] xip: ext2: execute in place 2005-06-24 00:06:41 -07:00