Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs

From: Guenter Roeck
Date: Wed Jan 21 2015 - 08:32:47 EST


On 01/21/2015 03:05 AM, Sabrina Dubroca wrote:
2015-01-21, 04:36:38 +0000, Al Viro wrote:
On Tue, Jan 20, 2015 at 08:01:26PM -0800, Guenter Roeck wrote:
With this patch:

sys_mkdir .:40775 returned -17
sys_mkdir usr:40775 returned 0
sys_mkdir usr/lib:40775 returned 0
sys_mkdir usr/share:40755 returned 0
sys_mkdir usr/share/udhcpc:40755 returned 0
sys_mkdir usr/bin:40775 returned 0
sys_mkdir usr/sbin:40775 returned 0
sys_mkdir mnt:40775 returned 0
sys_mkdir proc:40775 returned 0
sys_mkdir root:40775 returned 0
sys_mkdir lib:40775 returned 0
sys_mkdir lib/modules:40775 returned 0
...

and the problem is fixed.

This patch also works for me.


... except that it simply confirms that something's fishy with getname_kernel()
of ->name of struct filename returned by getname(). IOW, I still do not
understand the mechanism of breakage there.

I'm not so sure about that. I tried to copy name to a new string in
do_path_lookup and that didn't help.

Now, I've removed the

putname(filename);

line from do_path_lookup and I don't get the panic.


And BTW, I added Guenter's debugging to init/initramfs.c and got:
sys_mkdir dev:40755 returned 0
sys_mkdir root:40700 returned 0

even if it ends up panic'ing.

Another data point (though I have no idea if it is useful or what it means):

In the working case, path_init sets nd->flags to 0x50 or 0x51.
In the non-working case (ie for all files with a '/' in the name),
it sets nd->flags to 0x10 or 0x11, even though it is always called
with the LOOKUP_RCU bit set in flags.

Guenter

--
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/