From mboxrd@z Thu Jan 1 00:00:00 1970 From: Trond Myklebust Subject: Re: [pnfs] [GIT BISECT] first bad commit: 1f36f774 Switch !O_CREAT case to use of do_last() Date: Thu, 25 Mar 2010 13:59:41 -0400 Message-ID: <1269539981.3648.31.camel@localhost.localdomain> References: <20100325101231.GU30031@ZenIV.linux.org.uk> <20100325105406.GW30031@ZenIV.linux.org.uk> <4BAB51F5.609@panasas.com> <4BAB54B0.3080109@panasas.com> <20100325130610.GZ30031@ZenIV.linux.org.uk> <4BAB656E.8020204@panasas.com> <20100325133746.GA30031@ZenIV.linux.org.uk> <4BAB6911.5020009@panasas.com> <20100325140457.GB30031@ZenIV.linux.org.uk> <4BAB72C1.6090002@panasas.com> <20100325152505.GD30031@ZenIV.linux.org.uk> <4BAB9D53.4000909@panasas.com> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Cc: Al Viro , Benny Halevy , linux-fsdevel , "J. Bruce Fields" , pNFS Mailing List , linux-kernel , Doug Nazar To: Boaz Harrosh Return-path: In-Reply-To: <4BAB9D53.4000909@panasas.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org On Thu, 2010-03-25 at 19:28 +0200, Boaz Harrosh wrote: > On 03/25/2010 05:25 PM, Al Viro wrote: > > I'm going to send a fix for O_DIRECTORY case (restoring the behaviour > > we had in 2.6.33) today, but NFS side of things also needs to be dealt > > with. > > Thank you Al for fixing this, I hope some capable NFS person will take > that issue to heart. The NFSv4 fix is a trivial 1 liner. Pushed to bugfixes. Now to understand that screwed up xdr decode... Trond ------------------------------------------------------------------------------------------ NFSv4: Fall back to ordinary lookup if nfs4_atomic_open() returns EISDIR From: Trond Myklebust Signed-off-by: Trond Myklebust --- fs/nfs/dir.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c index c6f2750..be46f26 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c @@ -1025,12 +1025,12 @@ static struct dentry *nfs_atomic_lookup(struct inode *dir, struct dentry *dentry res = NULL; goto out; /* This turned out not to be a regular file */ + case -EISDIR: case -ENOTDIR: goto no_open; case -ELOOP: if (!(nd->intent.open.flags & O_NOFOLLOW)) goto no_open; - /* case -EISDIR: */ /* case -EINVAL: */ default: goto out;