On Wed, 2024-02-07 at 13:29 -0500, Olga Kornievskaia wrote: > 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; 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@xxxxxxxxxxxxxxx