All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chuck Lever <chuck.lever@oracle.com>
To: Trond Myklebust <Trond.Myklebust@netapp.com>
Cc: linux-nfs@vger.kernel.org
Subject: Re: [PATCH 2/2] NFS: Fix the mapping of the NFSERR_SERVERFAULT error
Date: Fri, 05 Feb 2010 18:12:46 -0500	[thread overview]
Message-ID: <4B6CA5EE.8080104@oracle.com> (raw)
In-Reply-To: <1265409793-18314-2-git-send-email-Trond.Myklebust@netapp.com>

On 02/05/2010 05:43 PM, Trond Myklebust wrote:
> It was recently pointed out that the NFSERR_SERVERFAULT error, which is
> designed to inform the user of a serious internal error on the server, was
> being mapped to an error value that is internal to the kernel.
>
> This patch maps it to the error EREMOTEIO, which is exported to userland
> through errno.h.
>
> Signed-off-by: Trond Myklebust<Trond.Myklebust@netapp.com>
> Cc: stable@kernel.org
> ---
>   fs/nfs/mount_clnt.c |    2 +-
>   fs/nfs/nfs2xdr.c    |    2 +-
>   fs/nfs/nfs4xdr.c    |    6 +++---
>   3 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/fs/nfs/mount_clnt.c b/fs/nfs/mount_clnt.c
> index 0adefc4..59047f8 100644
> --- a/fs/nfs/mount_clnt.c
> +++ b/fs/nfs/mount_clnt.c
> @@ -120,7 +120,7 @@ static struct {
>   	{ .status = MNT3ERR_INVAL,		.errno = -EINVAL,	},
>   	{ .status = MNT3ERR_NAMETOOLONG,	.errno = -ENAMETOOLONG,	},
>   	{ .status = MNT3ERR_NOTSUPP,		.errno = -ENOTSUPP,	},
> -	{ .status = MNT3ERR_SERVERFAULT,	.errno = -ESERVERFAULT,	},
> +	{ .status = MNT3ERR_SERVERFAULT,	.errno = -EREMOTEIO,	},
>   };
>
>   struct mountres {

The decode_status() and decode_fhs_status() functions return -EACCES if 
they don't recognize the server's error code.  Should they return 
-EREMOTEIO instead?

Otherwise, looks good.

> diff --git a/fs/nfs/nfs2xdr.c b/fs/nfs/nfs2xdr.c
> index 5e078b2..7bc2da8 100644
> --- a/fs/nfs/nfs2xdr.c
> +++ b/fs/nfs/nfs2xdr.c
> @@ -699,7 +699,7 @@ static struct {
>   	{ NFSERR_BAD_COOKIE,	-EBADCOOKIE	},
>   	{ NFSERR_NOTSUPP,	-ENOTSUPP	},
>   	{ NFSERR_TOOSMALL,	-ETOOSMALL	},
> -	{ NFSERR_SERVERFAULT,	-ESERVERFAULT	},
> +	{ NFSERR_SERVERFAULT,	-EREMOTEIO	},
>   	{ NFSERR_BADTYPE,	-EBADTYPE	},
>   	{ NFSERR_JUKEBOX,	-EJUKEBOX	},
>   	{ -1,			-EIO		}
> diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c
> index e437fd6..5cd5184 100644
> --- a/fs/nfs/nfs4xdr.c
> +++ b/fs/nfs/nfs4xdr.c
> @@ -4631,7 +4631,7 @@ static int decode_sequence(struct xdr_stream *xdr,
>   	 * If the server returns different values for sessionID, slotID or
>   	 * sequence number, the server is looney tunes.
>   	 */
> -	status = -ESERVERFAULT;
> +	status = -EREMOTEIO;
>
>   	if (memcmp(id.data, res->sr_session->sess_id.data,
>   		   NFS4_MAX_SESSIONID_LEN)) {
> @@ -5774,7 +5774,7 @@ static struct {
>   	{ NFS4ERR_BAD_COOKIE,	-EBADCOOKIE	},
>   	{ NFS4ERR_NOTSUPP,	-ENOTSUPP	},
>   	{ NFS4ERR_TOOSMALL,	-ETOOSMALL	},
> -	{ NFS4ERR_SERVERFAULT,	-ESERVERFAULT	},
> +	{ NFS4ERR_SERVERFAULT,	-EREMOTEIO	},
>   	{ NFS4ERR_BADTYPE,	-EBADTYPE	},
>   	{ NFS4ERR_LOCKED,	-EAGAIN		},
>   	{ NFS4ERR_SYMLINK,	-ELOOP		},
> @@ -5801,7 +5801,7 @@ nfs4_stat_to_errno(int stat)
>   	}
>   	if (stat<= 10000 || stat>  10100) {
>   		/* The server is looney tunes. */
> -		return -ESERVERFAULT;
> +		return -EREMOTEIO;
>   	}
>   	/* If we cannot translate the error, the recovery routines should
>   	 * handle it.


-- 
chuck[dot]lever[at]oracle[dot]com

  reply	other threads:[~2010-02-05 23:14 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-02-05 22:43 [PATCH 1/2] NFS: Fix a bug in nfs_fscache_release_page() Trond Myklebust
2010-02-05 22:43 ` [PATCH 2/2] NFS: Fix the mapping of the NFSERR_SERVERFAULT error Trond Myklebust
2010-02-05 23:12   ` Chuck Lever [this message]
2010-02-08 15:12     ` Trond Myklebust
2010-02-07 11:26 ` [PATCH 1/2] NFS: Fix a bug in nfs_fscache_release_page() Suresh Jayaraman
2010-02-08 13:23   ` Trond Myklebust
2010-02-08 14:50     ` Trond Myklebust
2010-02-08 16:33       ` Suresh Jayaraman
2010-02-08 16:39         ` Trond Myklebust
2010-02-09  6:26           ` Suresh Jayaraman
2010-02-08 14:59     ` [PATCH 0/2] Fix for the nfs_release_page() bug Trond Myklebust
     [not found]       ` <20100208145942.17581.81775.stgit-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2010-02-08 14:59         ` [PATCH 1/2] NFS: Fix a bug in nfs_fscache_release_page() Trond Myklebust
2010-02-08 14:59         ` [PATCH 2/2] NFS: Remove a redundant check for PageFsCache in nfs_migrate_page() Trond Myklebust
     [not found]       ` <20100208145942.17581.83842.stgit-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2010-02-09 14:53         ` [PATCH 1/2] NFS: Fix a bug in nfs_fscache_release_page() David Howells
     [not found]       ` <20100208145942.17581.12206.stgit-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2010-02-09 14:54         ` [PATCH 2/2] NFS: Remove a redundant check for PageFsCache in nfs_migrate_page() David Howells

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4B6CA5EE.8080104@oracle.com \
    --to=chuck.lever@oracle.com \
    --cc=Trond.Myklebust@netapp.com \
    --cc=linux-nfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.