2015-01-21, 04:36:38 +0000, Al Viro wrote:Another data point (though I have no idea if it is useful or what it means):
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.