[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20130321214118.GA25517@redhat.com>
Date: Thu, 21 Mar 2013 17:41:18 -0400
From: Dave Jones <davej@...hat.com>
To: Al Viro <viro@...IV.linux.org.uk>
Cc: Linus Torvalds <torvalds@...ux-foundation.org>,
Linux Kernel <linux-kernel@...r.kernel.org>
Subject: Re: VFS deadlock ?
On Thu, Mar 21, 2013 at 09:26:17PM +0000, Al Viro wrote:
> On Thu, Mar 21, 2013 at 02:18:15PM -0700, Linus Torvalds wrote:
> > On Thu, Mar 21, 2013 at 2:02 PM, Dave Jones <davej@...hat.com> wrote:
> > >
> > > here we go...
> > >
> > > WARNING: at fs/namei.c:2335 lock_rename+0x156/0x160()
> > > p1=irda p2=irda
> >
> > Ok, good. I ssupect it's /proc or /sys, we do have that entry there.
> >
> > But in fact I suspect we do want the parent name after all, because I
> > think we have multiple "irda" directories. There's the one in
> > /proc/net/ (added by net/irda/irproc.c), and there's a sysctl CTL_DIR
> > "irda" directory (kernel/sysctl_binary.c). And there might even be a
> > few other ones in /sys too, thanks to the ldisc called "irda" etc.
> >
> > I don't see where the shared inode comes from, but I suspect that
> > would be easier to guess if we actually see which particular case it
> > ends up being..
>
> Well, something like
> static char path[4096];
> d_absolute_path(p1, path, 4096);
> printk(KERN_ERR "%s %s %d %d"
> path, p1->d_sb->s_type->name, d_unlinked(p1), d_unlinked(p2));
> might be useful - pathname within fs, fs type and which of those suckers are
> unlinked...
uh..
fs/namei.c:2342:3: warning: passing argument 1 of ‘d_absolute_path’ from incompatible pointer type [enabled by default]
d_absolute_path(p1, path, 4096);
^
In file included from include/linux/fs.h:8:0,
from fs/namei.c:21:
include/linux/dcache.h:337:14: note: expected ‘const struct path *’ but argument is of type ‘struct dentry *’
extern char *d_absolute_path(const struct path *, char *, int);
^
How do I go from the dentry in p1 to the path d_absolute_path expects ?
Dave
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists