[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20080718033225.c141978c.akpm@linux-foundation.org>
Date: Fri, 18 Jul 2008 03:32:25 -0700
From: Andrew Morton <akpm@...ux-foundation.org>
To: "Vegard Nossum" <vegard.nossum@...il.com>
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, 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.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists