[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <19f34abd0807180339k4d359fb4sc1cc556567f4f3f3@mail.gmail.com>
Date: Fri, 18 Jul 2008 12:39:18 +0200
From: "Vegard Nossum" <vegard.nossum@...il.com>
To: "Andrew Morton" <akpm@...ux-foundation.org>
Cc: linux-ext4@...r.kernel.org, sct@...hat.com, adilger@....com,
"Ingo Molnar" <mingo@...e.hu>,
"Peter Zijlstra" <a.p.zijlstra@...llo.nl>,
"Linux Kernel Mailing List" <linux-kernel@...r.kernel.org>
Subject: Re: latest -git: A peculiar case of a stuck process (ext3/sched-related?)
On Fri, Jul 18, 2008 at 12:32 PM, Andrew Morton
<akpm@...ux-foundation.org> wrote:
> On Fri, 18 Jul 2008 12:17:17 +0200 "Vegard Nossum" <vegard.nossum@...il.com> wrote:
>
>> And the ext3_find_entry() corresponds to this line:
>>
>> for (; de < top; de = ext3_next_entry(de)) /* <--- HERE! */
>> if (ext3_match (namelen, name, de)) {
>> if (!ext3_check_dir_entry("ext3_find_entry",
>> dir, de, bh,
>> (block<<EXT3_BLOCK_SIZE_BITS(sb))
>> +((char *)de - bh->b_data))) {
>> brelse (bh);
>> *err = ERR_BAD_DX_DIR;
>> goto errout;
>> }
>> *res_dir = de;
>> dx_release (frames);
>> return bh;
>> }
>>
>> Is it possible that this loop can get stuck with a corrupt filesystem image?
>
> yup. ext2 did that a couple of times. See the explicit check for
> de->rec_len == 0 in ext2_find_entry().
>
> We fixed one filesystem and forgot the others. Again.
Wow, that change is OLD, though:
commit aa4f3f285643956bb614cf7b8f88e15f3a375886
Author: Andrew Morton <akpm@....com.au>
Date: Mon Apr 29 23:51:34 2002 -0700
[PATCH] ext2 directory handling
Will you also send the patch for ext3? :-)
Vegard
--
"The animistic metaphor of the bug that maliciously sneaked in while
the programmer was not looking is intellectually dishonest as it
disguises that the error is the programmer's own creation."
-- E. W. Dijkstra, EWD1036
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists