On Nov 16, 2006 11:50 -0500, Jeff Mahoney wrote:
> Currently, if a corrupted directory entry with rec_len=0 is encountered,
> we still trust that the data is valid. This can cause an infinite loop
> in htree_dirblock_to_tree() since the iteration loop will never make any
> progress.
Actually, I think Eric Sandeen was working on similar fixes already, and
instead of doing a per-item check each time we look at the entry it does
a full-block check the first time it is read (as ext2 does).
> This fixes the problem described at:
> http://projects.info-pull.com/mokb/MOKB-10-11-2006.html
Would also be good to CC linux-ext4, where the ext3 maintainers live.
Hmm, maybe we need to update MAINTAINERS with the new list address?
Cheers, Andreas
--
Andreas Dilger
Principal Software Engineer
Cluster File Systems, Inc.
Andreas Dilger wrote:
> On Nov 16, 2006 11:50 -0500, Jeff Mahoney wrote:
>> Currently, if a corrupted directory entry with rec_len=0 is encountered,
>> we still trust that the data is valid. This can cause an infinite loop
>> in htree_dirblock_to_tree() since the iteration loop will never make any
>> progress.
>
> Actually, I think Eric Sandeen was working on similar fixes already, and
> instead of doing a per-item check each time we look at the entry it does
> a full-block check the first time it is read (as ext2 does).
>
>> This fixes the problem described at:
>> http://projects.info-pull.com/mokb/MOKB-10-11-2006.html
>
> Would also be good to CC linux-ext4, where the ext3 maintainers live.
> Hmm, maybe we need to update MAINTAINERS with the new list address?
This should already be fixed, in some fashion, in -mm:
http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.19-rc5/2.6.19-rc5-mm2/broken-out/handle-ext3-directory-corruption-better.patch
I have been looking at doing a check only when the block is first read,
but other things have come up & taken some time, and that is a bit on
the back burner now...
-Eric
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Andreas Dilger wrote:
> On Nov 16, 2006 11:50 -0500, Jeff Mahoney wrote:
>> Currently, if a corrupted directory entry with rec_len=0 is encountered,
>> we still trust that the data is valid. This can cause an infinite loop
>> in htree_dirblock_to_tree() since the iteration loop will never make any
>> progress.
>
> Actually, I think Eric Sandeen was working on similar fixes already, and
> instead of doing a per-item check each time we look at the entry it does
> a full-block check the first time it is read (as ext2 does).
>
>> This fixes the problem described at:
>> http://projects.info-pull.com/mokb/MOKB-10-11-2006.html
>
> Would also be good to CC linux-ext4, where the ext3 maintainers live.
Ok, thanks. If that's already in -mm, I'll use that one.
- -Jeff
- --
Jeff Mahoney
SUSE Labs
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)
Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org
iD8DBQFFXQIwLPWxlyuTD7IRApH7AJ9+/SFmd9bf8E741wvxw/6vdrUrdwCeJNEG
eHZMo5RWUrLW5iDEqehjRlI=
=lGRM
-----END PGP SIGNATURE-----