Joseph, please refer to the commit link on ubuntu kernel's git at the
bug description. That's the point where the problem was introduced. Thus
neither upstream vanilla 3.5 kernel, nor mszeredi's overlayfs kernel
doesn't have reported problem. The merge conflict pointed at bug
description was introduced due to mszeredi's overlayfs v13 was based on
kernel 3.4. And both, mszeredi's overlayfs v13 patch and 3.4 to 3.5
patch modify 'nameidata_to_filp' behavior. Next version of overlayfs v14
is based on kernel 3.6, where open.c was greatly modified and there is
no 'nameidata_to_filp' function.


Your arguments about kernel patching are reasonable. So I will provide links to 
various variants of open.c and ask you to investigate how 'nameidata_to_filp' 
is working at different kernels:

----

vanilla v3.4: http://git.kernel.org/?p=linux/kernel/git/stable/linux-
stable.git;a=blob;f=fs/open.c;h=5720854156dbd61e28598da83a529294401eb119;hb=76e10d158efb6d4516018846f60c2ab5501900bc

call sequence: nameidata_to_filp -> __dentry_open -> all dirty stuff
here

----

overlayfs v13:
http://git.kernel.org/?p=linux/kernel/git/mszeredi/vfs.git;a=blob;f=fs/open.c;h=3e132ba8576030460673c1b75f8b4fdbee4bb930;hb=refs/heads/overlayfs.v13

call sequence: nameidata_to_filp -> vfs_open -> __dentry_open -> all
dirty stuff here

----

vanilla v3.5: http://git.kernel.org/?p=linux/kernel/git/stable/linux-
stable.git;a=blob;f=fs/open.c;h=1540632d8387fe98a51d0193201346acb18ae70e;hb=28a33cbc24e4256c143dce96c7d93bf423229f92

call sequence: nameidata_to_filp [post-proc] -> do_dentry_open -> most
of dirty stuff here

----

ubuntu quantal: http://kernel.ubuntu.com/git?p=ubuntu/ubuntu-
quantal.git;a=blob;f=fs/open.c;h=7be104a4e0aecbd3ecd7df20a2d3f7825a795af7;hb=HEAD

call sequence: nameidata_to_filp [post-proc] -> vfs_open ->
__dentry_open [post-proc] -> do_dentry_open -> most of dirty stuff here

----

Well, in v3.4 and overlayfs v13 "all dirty stuff" was done at the
'__dentry_open'. In v3.5 that "all dirty stuff" was split into "most of
dirty stuff" in the 'do_dentry_open' and other part of "all dirty stuff"
(post-processing) was left at the '__dentry_open'. Besides this post-
processing stuff was duplicated at 'nameidata_to_filp' and
'nameidata_to_filp' calls only 'do_dentry_open', not '__dentry_open'.

So at vanilla v3.5 'nameidata_to_filp' now calls only 'do_dentry_open'
and performs post-processing by itself. In quantal's kernel (merged from
v3.5 and overlayfs v13) post-processing done at 'nameidata_to_filp' like
in vanilla kernel. But also post-processing done at '__dentry_open'
called by 'vfs_open' ported from overlayfs v13.

----

I hope this information and investigating on provided points will be
enough to accept the patch.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1122094

Title:
  [patch] fix improper merge with overlayfs.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1122094/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to