Re: [pnfs] [GIT BISECT] first bad commit: 1f36f774 Switch !O_CREAT case to use of do_last()

Boaz Harrosh
2010-03-25T18:06:10Z

On 03/25/2010 07:59 PM, Trond Myklebust wrote:
> 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.
>

Thanks

> Now to understand that screwed up xdr decode...
>

Tell me if you need that I run any tests. I still have that
failing setup if you need it.

> Trond

Boaz

> ------------------------------------------------------------------------------------------
> NFSv4: Fall back to ordinary lookup if nfs4_atomic_open() returns EISDIR
> From: Trond Myklebust <Trond.Myklebust@netapp.com>
>
> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
> ---
>
> 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;
>
>