Re: [PATCH] xfs: fix BUG_ON in xfs_getbmap()

From: Dave Chinner
Date: Mon Mar 27 2023 - 22:58:18 EST


On Mon, Mar 27, 2023 at 07:03:41PM -0700, Darrick J. Wong wrote:
> On Mon, Mar 27, 2023 at 06:47:54PM -0700, Christoph Hellwig wrote:
> > On Mon, Mar 27, 2023 at 06:43:28PM -0700, Darrick J. Wong wrote:
> > > <shrug> Seeing as the data fork mappings can change the instant the
> > > ILOCK drops, I'm not /that/ worried about users seeing a delalloc
> > > mapping even if the user requested a flush. The results are already
> > > obsolete when they get to userspace, unless the application software has
> > > found another means to lock out access to the file.
> >
> > That is true, but then again the users asked to not see delalloc
> > mappings, so we really shouldn't report one, right?
>
> Yeah, I suppose so. I wonder how many programs there are out there that
> don't pass in BMV_IF_DELALLOC /and/ can't handle that? But I suppose
> taking MMAP_EXCL is good enough to shut up the obvious assertion vector.

Why not just skip it? Take the flush completion as being a
point-in-time snapshot where there are no delalloc extents, and if
any new ones have been created racily, just skip them as being
"after" the flush and so don't get reported...

> The COW implementation probably ought to be doing the flush too.

Yup, and then just skip any delalloc extents found after that, too.

Cheers,

Dave.
--
Dave Chinner
david@xxxxxxxxxxxxx