From: Olga Kornievskaia <kolga@xxxxxxxxxx> 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 <kolga@xxxxxxxxxx> --- 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; + if (task->tk_status < 0) { exception->retry = 1; status = nfs4_layoutget_handle_exception(task, lgp, exception); -- 2.39.1