Tough bug to find. This is basically caused by AppArmor's VFS patches,
most notably the unambiguous-__d_path.diff patch. In sys_getcwd() it
changes the call to __d_path() and has two mistakes:

* First, it passes the actual struct path root, which ends up being changed 
when we are looking up chroots (and most likely bind/union mounts too). When it 
calls path_put(root) it's doing so on something other than what we started 
with, hence improper ref counting.
* Second, it does not pass D_PATH_FAIL_DELETED like it should. So we end up not 
properly catching failures.

FIxing both of these, will also send upstream.

** Changed in: linux (Ubuntu Intrepid)
     Assignee: Ubuntu Kernel Team (ubuntu-kernel-team) => Ben Collins 
(ben-collins)
       Status: Triaged => In Progress
       Target: None => intrepid-alpha-4

-- 
BUG: Dentry ffff81003ac17410{i=161b,n=cow} still in use (1) [unmount of rootfs 
rootfs]
https://bugs.launchpad.net/bugs/251223
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to