]> bbs.cooldavid.org Git - net-next-2.6.git/commit
ext3: Fix lost extented attributes for inode with ino == 11
authorJan Kara <jack@suse.cz>
Wed, 25 Aug 2010 22:54:39 +0000 (00:54 +0200)
committerJan Kara <jack@suse.cz>
Tue, 5 Oct 2010 10:20:23 +0000 (12:20 +0200)
commitbeb37b85b0b727e68e16a39a1e5a2140f87fa201
treefa09390f90a604ce55edf61ca3c1377deff283a5
parent80f44b152c889e592616adf0d33b856107f4bace
ext3: Fix lost extented attributes for inode with ino == 11

If a filesystem has inode size > 128 and someone deletes lost+found and
reuses inode 11 for some other file, extented attributes set for this
inode before umount will get lost after remounting the filesystem. This
is because extended attributes will get stored in an inode but ext3_iget
will ignore them due to workaround of a bug in an old mkfs.

Fix the problem by initializing i_extra_isize to 0 for freshly allocated
inodes where mkfs workaround in ext3_iget applies. This way these inodes
will always store extended attributes in a special block and no problems
occur.

The bug was spotted and a reproduction test provided by:
  Masayoshi MIZUMA <m.mizuma@jp.fujitsu.com>

Reviewed-by: Andreas Dilger <adilger.kernel@dilger.ca>
Signed-off-by: Jan Kara <jack@suse.cz>
fs/ext3/ialloc.c