From: "Darrick J. Wong" <djwong@kernel.org>
To: Dai Ngo <dai.ngo@oracle.com>
Cc: Christoph Hellwig <hch@infradead.org>,
Dave Chinner <dgc@kernel.org>,
cem@kernel.org, linux-xfs@vger.kernel.org,
linux-nfs@vger.kernel.org
Subject: Re: [PATCH 1/1] xfs: fix overlapping extents returned for pNFS LAYOUTGET
Date: Tue, 19 May 2026 07:59:49 -0700 [thread overview]
Message-ID: <20260519145949.GH9555@frogsfrogsfrogs> (raw)
In-Reply-To: <55c7c22a-8edb-4833-be3f-1f6555ba90ed@oracle.com>
On Tue, May 19, 2026 at 06:44:18AM -0700, Dai Ngo wrote:
>
> On 5/18/26 11:30 PM, Christoph Hellwig wrote:
> > On Mon, May 18, 2026 at 12:55:17PM -0700, Dai Ngo wrote:
> > > As shown, the file map changes. Entry# 7 and 8 before the NFSD calls
> > > merged into entry#7 after the calls. So there must be some activities
> > > that cause the map to change. I don't know whether the activities were
> > > triggered by NFS or something in XFS or the block device layer.
> > Hmm. We only insert layouts (and search for conflicts) after calling
> > ->proc_layoutget. So this might be racy against unwritten extent
> > conversion, or other writers, which is a bit of an issue. I guess
> > we need to fix nfsd4_layoutget to insert an in-progress layout before
> > calling into ->layouget.
>
> I can't quite see the race condition regarding layoutget here. Could you
> please explain?
/me has no idea about nfs layouts but has thoughts anyway :)
1) xfs_fs_map_blocks only takes i_rwsem and XFS_ILOCK; it doesn't take
the mmap invalidation lock. Does that mean that pagefaults could wander
in and mess with the layout?
(I think the race that Christoph is referring to here is that any other
thread can wander in and change the mapping after a ->map_blocks call
returns, because nfs isn't holding any kind of lock on the inode)
2) Now that NFS apparently can serve up multiple mappings at once,
should ->map_blocks pass in an array element count so that we can do
multiple iomaps in a single lock cycle?
3) Do the reflink and realtime inode checks need to be re-assessed after
grabbing the ilock since they can change?
--D
> > > However, based on this data I think it's better to change the bmapi_flags
> > > from XFS_BMAPI_ENTIRE to '0' to address the overlap issue.
> > We absolutely should be doing that as I said from my first reply.
> > Still trying to understand what is going on here at a higher level,
> > though.
>
> I'll resubmit the patch series with both fixes combined: the uninitialized
> imap handling in the error path and the replacement of XFS_BMAPI_ENTIRE
> with 0.
>
> Thanks,
> -Dai
>
>
next prev parent reply other threads:[~2026-05-19 14:59 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-12 17:21 [PATCH 1/1] xfs: fix overlapping extents returned for pNFS LAYOUTGET Dai Ngo
2026-05-12 17:34 ` Darrick J. Wong
2026-05-12 19:21 ` Dai Ngo
2026-05-13 7:01 ` Christoph Hellwig
2026-05-13 15:50 ` Dai Ngo
2026-05-13 17:28 ` Dai Ngo
2026-05-14 0:25 ` Darrick J. Wong
2026-05-14 17:19 ` Dai Ngo
2026-05-14 17:49 ` Darrick J. Wong
2026-05-15 21:39 ` Dave Chinner
2026-05-16 2:14 ` Dai Ngo
2026-05-18 5:09 ` Christoph Hellwig
2026-05-18 19:55 ` Dai Ngo
2026-05-19 6:30 ` Christoph Hellwig
2026-05-19 13:44 ` Dai Ngo
2026-05-19 14:59 ` Darrick J. Wong [this message]
2026-05-19 17:34 ` Dai Ngo
2026-05-20 8:24 ` Christoph Hellwig
2026-05-20 15:09 ` Dai Ngo
2026-05-20 16:48 ` Darrick J. Wong
2026-05-20 17:32 ` Dai Ngo
2026-05-20 22:08 ` Sergey Bashirov
2026-05-15 11:50 ` Christoph Hellwig
2026-05-15 11:49 ` Christoph Hellwig
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=20260519145949.GH9555@frogsfrogsfrogs \
--to=djwong@kernel.org \
--cc=cem@kernel.org \
--cc=dai.ngo@oracle.com \
--cc=dgc@kernel.org \
--cc=hch@infradead.org \
--cc=linux-nfs@vger.kernel.org \
--cc=linux-xfs@vger.kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.