Linux NFS development
 help / color / mirror / Atom feed
* [PATCH] pNFS: Fix EBUSY check in pnfs_layout_need_return
@ 2026-08-17 15:40 tmenninger
  2026-08-18 18:24 ` Trond Myklebust
  0 siblings, 1 reply; 2+ messages in thread
From: tmenninger @ 2026-08-17 15:40 UTC (permalink / raw)
  To: trondmy, anna; +Cc: jlayton, linux-nfs, linux-kernel, Tim Menninger

From: Tim Menninger <tmenninger@everpuredata.com>

Commit 41d0a8ead9720 ("NFSv4/pnfs: Add support for the
PNFS_LAYOUT_FILE_BULK_RETURN flag") changed pnfs_layout_need_return() to
check whether pnfs_mark_layout_stateid_return() returns -EBUSY.

However, the new check compares the return value against EBUSY rather
than -EBUSY. Since pnfs_mark_layout_stateid_return() returns negative
errno values, the -EBUSY case is never detected.

But pnfs_layout_need_return() calls pnfs_mark_layout_stateid_return()
calls pnfs_mark_matching_lsegs_return(), which returns 0 if a
layoutreturn needs to be scheduled.

Fix the comparison in pnfs_layout_need_return() to check for 0, i.e. a
layoutreturn needs to be scheduled.

Fixes: 41d0a8ead9720 ("NFSv4/pnfs: Add support for the PNFS_LAYOUT_FILE_BULK_RETURN flag")
Signed-off-by: Tim Menninger <tmenninger@everpuredata.com>
---
 fs/nfs/pnfs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/nfs/pnfs.c b/fs/nfs/pnfs.c
index 9f32dd7c4c63..fb141cef4d54 100644
--- a/fs/nfs/pnfs.c
+++ b/fs/nfs/pnfs.c
@@ -1389,7 +1389,7 @@ pnfs_layout_need_return(struct pnfs_layout_hdr *lo)
 		return false;
 	return pnfs_mark_layout_stateid_return(lo, &lo->plh_return_segs,
 					       lo->plh_return_iomode,
-					       lo->plh_return_seq) != EBUSY;
+					       lo->plh_return_seq) == 0;
 }
 
 static void pnfs_layoutreturn_before_put_layout_hdr(struct pnfs_layout_hdr *lo)
-- 
2.34.1


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

* Re: [PATCH] pNFS: Fix EBUSY check in pnfs_layout_need_return
  2026-08-17 15:40 [PATCH] pNFS: Fix EBUSY check in pnfs_layout_need_return tmenninger
@ 2026-08-18 18:24 ` Trond Myklebust
  0 siblings, 0 replies; 2+ messages in thread
From: Trond Myklebust @ 2026-08-18 18:24 UTC (permalink / raw)
  To: tmenninger, anna; +Cc: jlayton, linux-nfs, linux-kernel, Tim Menninger

On Mon, 2026-08-17 at 15:40 +0000, tmenninger@purestorage.com wrote:
> From: Tim Menninger <tmenninger@everpuredata.com>
> 
> Commit 41d0a8ead9720 ("NFSv4/pnfs: Add support for the
> PNFS_LAYOUT_FILE_BULK_RETURN flag") changed pnfs_layout_need_return()
> to
> check whether pnfs_mark_layout_stateid_return() returns -EBUSY.
> 
> However, the new check compares the return value against EBUSY rather
> than -EBUSY. Since pnfs_mark_layout_stateid_return() returns negative
> errno values, the -EBUSY case is never detected.
> 
> But pnfs_layout_need_return() calls pnfs_mark_layout_stateid_return()
> calls pnfs_mark_matching_lsegs_return(), which returns 0 if a
> layoutreturn needs to be scheduled.
> 
> Fix the comparison in pnfs_layout_need_return() to check for 0, i.e.
> a
> layoutreturn needs to be scheduled.
> 
> Fixes: 41d0a8ead9720 ("NFSv4/pnfs: Add support for the
> PNFS_LAYOUT_FILE_BULK_RETURN flag")
> Signed-off-by: Tim Menninger <tmenninger@everpuredata.com>
> ---
>  fs/nfs/pnfs.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/fs/nfs/pnfs.c b/fs/nfs/pnfs.c
> index 9f32dd7c4c63..fb141cef4d54 100644
> --- a/fs/nfs/pnfs.c
> +++ b/fs/nfs/pnfs.c
> @@ -1389,7 +1389,7 @@ pnfs_layout_need_return(struct pnfs_layout_hdr
> *lo)
>  		return false;
>  	return pnfs_mark_layout_stateid_return(lo, &lo-
> >plh_return_segs,
>  					       lo-
> >plh_return_iomode,
> -					       lo->plh_return_seq)
> != EBUSY;
> +					       lo->plh_return_seq)
> == 0;
>  }
>  
>  static void pnfs_layoutreturn_before_put_layout_hdr(struct
> pnfs_layout_hdr *lo)

This breaks the ability of the client to respond to layout recalls even
when it does not think it holds a layout. That's a situation that can
occur when using soft or softerr mounts.

-- 
Trond Myklebust
Linux NFS client maintainer, Hammerspace
trondmy@kernel.org, trond.myklebust@hammerspace.com

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

end of thread, other threads:[~2026-08-18 18:24 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-17 15:40 [PATCH] pNFS: Fix EBUSY check in pnfs_layout_need_return tmenninger
2026-08-18 18:24 ` Trond Myklebust

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox