linux-nfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH] nfsd: fix error handling for clients that fail to return the layout
@ 2016-08-16 17:34 Jeff Layton
  2016-08-16 21:17 ` J. Bruce Fields
  0 siblings, 1 reply; 4+ messages in thread
From: Jeff Layton @ 2016-08-16 17:34 UTC (permalink / raw)
  To: linux-nfs; +Cc: bfields, hch

Currently, when the client fails to return the layout we'll eventually
give up trying but leave the layout in place. What we really need to
do here is fence the client in this case. Have it fall through to that
code in that case instead of into the NFS4ERR_NOMATCHING_LAYOUT case.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
---
 fs/nfsd/nfs4layouts.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Note that this patch is untested, other than for compilation as I
don't have a block/scsi pnfs setup on which to do so. Still, I think
it makes more sense to fence clients that don't return the layout
instead of just giving up.

diff --git a/fs/nfsd/nfs4layouts.c b/fs/nfsd/nfs4layouts.c
index 42aace4fc4c8..596205d939a1 100644
--- a/fs/nfsd/nfs4layouts.c
+++ b/fs/nfsd/nfs4layouts.c
@@ -686,10 +686,6 @@ nfsd4_cb_layout_done(struct nfsd4_callback *cb, struct rpc_task *task)
 			return 0;
 		}
 		/* Fallthrough */
-	case -NFS4ERR_NOMATCHING_LAYOUT:
-		trace_layout_recall_done(&ls->ls_stid.sc_stateid);
-		task->tk_status = 0;
-		return 1;
 	default:
 		/*
 		 * Unknown error or non-responding client, we'll need to fence.
@@ -702,6 +698,10 @@ nfsd4_cb_layout_done(struct nfsd4_callback *cb, struct rpc_task *task)
 		else
 			nfsd4_cb_layout_fail(ls);
 		return -1;
+	case -NFS4ERR_NOMATCHING_LAYOUT:
+		trace_layout_recall_done(&ls->ls_stid.sc_stateid);
+		task->tk_status = 0;
+		return 1;
 	}
 }
 
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2016-08-17 14:24 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-08-16 17:34 [RFC PATCH] nfsd: fix error handling for clients that fail to return the layout Jeff Layton
2016-08-16 21:17 ` J. Bruce Fields
2016-08-17 13:28   ` Jeff Layton
2016-08-17 14:24     ` J. Bruce Fields

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).