Re: [PATCH 3/3] NFSv4: Minor cleanups for nfs4_handle_exception and nfs4_async_handle_error

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 27 Mar 2012 18:35:44 -0400
Trond Myklebust <Trond.Myklebust@xxxxxxxxxx> wrote:

> Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
> ---
>  fs/nfs/nfs4proc.c |   10 +++++-----
>  1 files changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
> index 1933e67..f82bde0 100644
> --- a/fs/nfs/nfs4proc.c
> +++ b/fs/nfs/nfs4proc.c
> @@ -270,7 +270,7 @@ static int nfs4_handle_exception(struct nfs_server *server, int errorcode, struc
>  		case 0:
>  			return 0;
>  		case -NFS4ERR_OPENMODE:
> -			if (nfs_have_delegation(inode, FMODE_READ)) {
> +			if (inode && nfs_have_delegation(inode, FMODE_READ)) {
>  				nfs_inode_return_delegation(inode);
>  				exception->retry = 1;
>  				return 0;
> @@ -282,10 +282,9 @@ static int nfs4_handle_exception(struct nfs_server *server, int errorcode, struc
>  		case -NFS4ERR_DELEG_REVOKED:
>  		case -NFS4ERR_ADMIN_REVOKED:
>  		case -NFS4ERR_BAD_STATEID:
> -			if (state != NULL)
> -				nfs_remove_bad_delegation(state->inode);
>  			if (state == NULL)
>  				break;
> +			nfs_remove_bad_delegation(state->inode);
>  			nfs4_schedule_stateid_recovery(server, state);
>  			goto wait_on_recovery;
>  		case -NFS4ERR_EXPIRED:
> @@ -3825,8 +3824,9 @@ nfs4_async_handle_error(struct rpc_task *task, const struct nfs_server *server,
>  		case -NFS4ERR_DELEG_REVOKED:
>  		case -NFS4ERR_ADMIN_REVOKED:
>  		case -NFS4ERR_BAD_STATEID:
> -			if (state != NULL)
> -				nfs_remove_bad_delegation(state->inode);
> +			if (state == NULL)
> +				break;
> +			nfs_remove_bad_delegation(state->inode);
>  		case -NFS4ERR_OPENMODE:
>  			if (state == NULL)
>  				break;

Hi Trond,

We got several reports of oopses in Fedora that look like they would be
fixed by this patch. Here's the bug that's tracking them:

    https://bugzilla.redhat.com/show_bug.cgi?id=811138

The problem seems to be regression introduced by 3114ea7a. An inode
field was added to the nfs4_exception struct, but most of the callers
of nfs4_handle_exception set it to NULL.

Would it be reasonable to push this to stable too?

-- 
Jeff Layton <jlayton@xxxxxxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux