From: Trond Myklebust <trondmy@kernel.org>
To: tmenninger@purestorage.com, anna@kernel.org
Cc: jlayton@kernel.org, linux-nfs@vger.kernel.org,
linux-kernel@vger.kernel.org,
Tim Menninger <tmenninger@everpuredata.com>
Subject: Re: [PATCH] pNFS: Fix EBUSY check in pnfs_layout_need_return
Date: Tue, 18 Aug 2026 11:24:25 -0700 [thread overview]
Message-ID: <ee8f174933d00fc58e2f54fd2fdd98d67919884b.camel@kernel.org> (raw)
In-Reply-To: <20260817154044.1799634-1-tmenninger@purestorage.com>
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
prev parent reply other threads:[~2026-08-18 18:24 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-17 15:40 [PATCH] pNFS: Fix EBUSY check in pnfs_layout_need_return tmenninger
2026-08-18 18:24 ` Trond Myklebust [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ee8f174933d00fc58e2f54fd2fdd98d67919884b.camel@kernel.org \
--to=trondmy@kernel.org \
--cc=anna@kernel.org \
--cc=jlayton@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nfs@vger.kernel.org \
--cc=tmenninger@everpuredata.com \
--cc=tmenninger@purestorage.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox