From: Trond Myklebust <Trond.Myklebust@netapp.com>
Date: Fri, 4 Nov 2005 20:33:50 +0000 (-0500)
Subject: NFSv4: Fix the handling of the error NFS4ERR_OLD_STATEID
X-Git-Tag: firefly_0821_release~40169^2~23
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=2c56617d76fa7b2a709d58abd7ed68889cc88b90;p=firefly-linux-kernel-4.4.55.git

NFSv4: Fix the handling of the error NFS4ERR_OLD_STATEID

 Ensure that we retry the failed operation...

 Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
---

diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index 9e492c2261c0..54ff465cf7cf 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -2595,12 +2595,10 @@ int nfs4_handle_exception(const struct nfs_server *server, int errorcode, struct
 		case -NFS4ERR_GRACE:
 		case -NFS4ERR_DELAY:
 			ret = nfs4_delay(server->client, &exception->timeout);
-			if (ret == 0)
-				exception->retry = 1;
-			break;
+			if (ret != 0)
+				break;
 		case -NFS4ERR_OLD_STATEID:
-			if (ret == 0)
-				exception->retry = 1;
+			exception->retry = 1;
 	}
 	/* We failed to handle the error */
 	return nfs4_map_errors(ret);