Messages in this thread | | | Date | Thu, 21 Mar 2013 15:53:13 -0700 | Subject | Re: VFS deadlock ? | From | Linus Torvalds <> |
| |
On Thu, Mar 21, 2013 at 3:12 PM, Dave Jones <davej@redhat.com> wrote: > > it's not just irda fwiw.. > > p1=rpc p2=rpc p1parent=net p2parent=net
Ok, good. The only rpc/irda that has something in common is /proc/net/, and they both use proc_mkdir() to create the directory:
proc_irda = proc_mkdir("irda", init_net.proc_net); ... sn->proc_net_rpc = proc_mkdir("rpc", net->proc_net);
so it's almost certainly that case. What I do *not* see is how we got two different dentries for the same name in /proc. But if that happens, then yes, they will have aliased inodes (because proc_get_inode() will look them up by "sb,de->low_ino".
Al, any ideas? There shouldn't be some lookup race, because that's done under the parent inode lock. And multiple mount-points will have different superblocks, so proc_get_inode() will give them separate inodes. And bind mounts should have all the same dentry tree. So what the heck am I missing?
Linus
| |