Thread (7 messages) read the whole thread 7 messages, 2 authors, 2024-02-07

Re: [PATCH 1/1] NFSv4.1/pnfs: error gracefully on partial pnfs layout

From: Trond Myklebust <hidden>
Date: 2024-02-07 19:12:05

On Wed, 2024-02-07 at 13:29 -0500, Olga Kornievskaia wrote:
quoted hunk ↗ jump to hunk
From: Olga Kornievskaia <redacted>

Currently, if the server returns a partial layout, the client gets
stuck asking for a layout indefinitely. Until we add support for
partial layouts, treat partial layout as layout unavailable error.

Signed-off-by: Olga Kornievskaia <redacted>
---
 fs/nfs/nfs4proc.c | 6 ++++++
 1 file changed, 6 insertions(+)
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index dae4c1b6cc1c..108bc7f3e8c2 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -9790,6 +9790,12 @@ nfs4_proc_layoutget(struct nfs4_layoutget
*lgp,
 	if (status != 0)
 		goto out;
 
+	/* Since client does not support partial pnfs layout, then
treat
+	 * getting a partial layout as LAYOUTUNAVAILABLE error
+	 */
+	if (lgp->args.range.length != lgp->res.range.length)
+		task->tk_status = -NFS4ERR_LAYOUTUNAVAILABLE;

I think this case is better handled by allowing the caller to set lgp-
args.minlength to an appropriate minimum value.
+
 	if (task->tk_status < 0) {
 		exception->retry = 1;
 		status = nfs4_layoutget_handle_exception(task, lgp,
exception);
-- 
Trond Myklebust
Linux NFS client maintainer, Hammerspace
trond.myklebust@hammerspace.com

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help