Re: Patch: romfs_lookup always failed in linux-2.6.25-rc3-git3

From: Andrew Morton
Date: Tue Mar 04 2008 - 04:27:20 EST


On Mon, 3 Mar 2008 09:36:20 -0800 "Adam J. Richter" <adam@xxxxxxxxxxxxx> wrote:

> Hi David,
>
> romfs_lookup worked in 2.6.24.2, but always fails in
> linux-2.6.25-rc3-git3. fs/romfs/inode.c is the same in at least
> 2.6.25-rc3 through 2.6.25-rc3-git4 and the latest sources from git, so
> these versions almost certainly have the same problem.
>
> The bug appears to be from a well meaning but botched attempt
> to eliminate a goto from romfs_lookup. Previously, a goto statement
> was used to skip over "inode = NULL;" when the lookup succeeded. In
> the 2.6.25-rc3 version, inode is set to NULL even when an inode was
> found, so the result is the the lookup always appears to fail.
>
> The attached patch fixes the problem while still eliminating
> the goto. The patch adds one line and replaces one line. It only
> looks big because I've set the number of context lines to 10 for
> better readability. I have tested it in on a romfs initial ramdisk
> which on which I had experienced the problem.
>
> If this patch looks OK to you, can you please submit it
> upstream?

Thanks.

> P.S. romfs_lookup casts a valid pointer to an int and then back again
> with res = PTR_ERR(inode);...return ERR_PTR(res). This may break on
> arhictectures where sizeof(int) < sizeof(pointer). If I want to submit
> a subsequent fix for this, are you the person I should the patch to?

I can take care of it.

Please remember the signed-off-by: red tape.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/