From mboxrd@z Thu Jan 1 00:00:00 1970 From: Al Viro Subject: Re: [PATCH 1/4] cifs: make cifs_lookup return a dentry Date: Sat, 22 May 2010 15:46:15 +0100 Message-ID: <20100522144615.GN31073@ZenIV.linux.org.uk> References: <1274466317-28231-1-git-send-email-jlayton@redhat.com> <1274466317-28231-2-git-send-email-jlayton@redhat.com> <20100522133051.GL31073@ZenIV.linux.org.uk> <20100522100836.28b95cff@tlielax.poochiereds.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: linux-cifs-client@lists.samba.org, linux-fsdevel@vger.kernel.org To: Jeff Layton Return-path: Received: from zeniv.linux.org.uk ([195.92.253.2]:39294 "EHLO ZenIV.linux.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753807Ab0EVOqR (ORCPT ); Sat, 22 May 2010 10:46:17 -0400 Content-Disposition: inline In-Reply-To: <20100522100836.28b95cff@tlielax.poochiereds.net> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: On Sat, May 22, 2010 at 10:08:36AM -0400, Jeff Layton wrote: > On Sat, 22 May 2010 14:30:51 +0100 > Al Viro 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.