[linux-cifs-client] [PATCH 1/4] cifs: make cifs_lookup return a dentry

Jeff Layton jlayton at redhat.com
Sat May 22 09:23:46 MDT 2010


On Sat, 22 May 2010 15:46:15 +0100
Al Viro <viro at ZenIV.linux.org.uk> wrote:

> On Sat, May 22, 2010 at 10:08:36AM -0400, Jeff Layton wrote:
> > On Sat, 22 May 2010 14:30:51 +0100
> > Al Viro <viro at ZenIV.linux.org.uk> wrote:
> > 
> > > On Fri, May 21, 2010 at 02:25:14PM -0400, Jeff Layton wrote:
> > > > cifs_lookup doesn't actually return a dentry. It instantiates the one
> > > > that's passed in, but callers don't have any way to know if the lookup
> > > > succeeded.
> > > 
> > > Huh?  Of course they do - ->lookup() has every right to do just that;
> > > d_add() and return NULL is perfectly legitimate.
> > 
> > OK, bad description on my part... Is one way of doing this preferred
> > over another?
> 
> Non-NULL, non ERR_PTR() strongly implies that you have found a different
> dentry and tell the caller to use it instead; returning the argument (after
> having cached it and bumped its refcount) will work, but it's pretty much
> a deliberate obfuscation.

Ok, thanks for the explanation. In that case, I'll plan to drop this
patch as the existing behavior is more clear.

Cheers,
-- 
Jeff Layton <jlayton at redhat.com>


More information about the linux-cifs-client mailing list