linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Dave Chinner <david@fromorbit.com>
To: Jan Kara <jack@suse.cz>
Cc: "Darrick J. Wong" <darrick.wong@oracle.com>,
	Matthew Wilcox <willy@infradead.org>,
	Ritesh Harjani <riteshh@linux.ibm.com>,
	tytso@mit.edu, linux-ext4@vger.kernel.org,
	adilger.kernel@dilger.ca, linux-fsdevel@vger.kernel.org,
	hch@infradead.org, cmaiolino@redhat.com
Subject: Re: [PATCHv3 6/6] Documentation: Correct the description of FIEMAP_EXTENT_LAST
Date: Thu, 27 Feb 2020 14:24:43 +1100	[thread overview]
Message-ID: <20200227032443.GI10737@dread.disaster.area> (raw)
In-Reply-To: <20200226172653.GW10728@quack2.suse.cz>

On Wed, Feb 26, 2020 at 06:26:53PM +0100, Jan Kara wrote:
> On Wed 26-02-20 08:17:42, Darrick J. Wong wrote:
> > On Wed, Feb 26, 2020 at 05:05:03AM -0800, Matthew Wilcox wrote:
> > > On Wed, Feb 26, 2020 at 03:27:08PM +0530, Ritesh Harjani wrote:
> > > > Currently FIEMAP_EXTENT_LAST is not working consistently across
> > > > different filesystem's fiemap implementations and thus this feature
> > > > may be broken. So fix the documentation about this flag to meet the
> > > > right expectations.
> > > 
> > > Are you saying filesystems have both false positives and false negatives?
> > > I can understand how a filesystem might fail to set FIEMAP_EXTENT_LAST,
> > > but not how a filesystem might set it when there's actually another
> > > extent beyond this one.
> > > 
> > > >  * FIEMAP_EXTENT_LAST
> > > > -This is the last extent in the file. A mapping attempt past this
> > > > -extent will return nothing.
> > > > +This is generally the last extent in the file. A mapping attempt past this
> > > > +extent may return nothing. But the user must still confirm by trying to map
> > > > +past this extent, since different filesystems implement this differently.
> > 
> > "This flag means nothing and can be set arbitrarily by the fs for the lulz."
> > 
> > Yuck.  I was really hoping for "This is set on the last extent record in
> > the dataset generated by the query parameters", particularly becaue
> > that's how e2fsprogs utilties interpret that flag.
> 
> The problem is that in some cases, we cannot determine whether the flag
> should be set without doing work equivalent to another fiemap call. And it
> just seems pointless to try to provide the flag in those cases.
> 
> But I agree with Matthew that seeing the flag without the extent really
> being the last one shouldn't happen (unless someone is changing the file).

Which, of course, can happen. And it can even be the kernel (e.g.
data writeback converting delalloc extents).

IOWs, the information returned to userspace is out of date before it
even gets to userspace, so userspace can't rely on the LAST flag to
be correct in any situation. That's just an extension of the fact
that userspace cannot rely on the extent map being correct and
accurate in any situation....

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

  reply	other threads:[~2020-02-27  3:24 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <cover.1582702693.git.riteshh@linux.ibm.com>
2020-02-26  9:57 ` [PATCHv3 1/6] ext4: Add IOMAP_F_MERGED for non-extent based mapping Ritesh Harjani
2020-02-26 12:26   ` Jan Kara
2020-02-26 12:33     ` Ritesh Harjani
2020-02-26  9:57 ` [PATCHv3 2/6] ext4: Optimize ext4_ext_precache for 0 depth Ritesh Harjani
2020-02-26 12:28   ` Jan Kara
2020-02-26  9:57 ` [PATCHv3 3/6] ext4: Move ext4 bmap to use iomap infrastructure Ritesh Harjani
2020-02-26 12:29   ` Jan Kara
2020-02-26  9:57 ` [PATCHv3 4/6] ext4: Make ext4_ind_map_blocks work with fiemap Ritesh Harjani
2020-02-26 12:39   ` Jan Kara
2020-02-26 12:47     ` Ritesh Harjani
2020-02-26 16:11   ` Darrick J. Wong
2020-02-27  5:27     ` Ritesh Harjani
2020-02-26  9:57 ` [PATCHv3 5/6] ext4: Move ext4_fiemap to use iomap framework Ritesh Harjani
2020-02-26 13:27   ` Jan Kara
2020-02-27  5:38     ` Ritesh Harjani
2020-02-26  9:57 ` [PATCHv3 6/6] Documentation: Correct the description of FIEMAP_EXTENT_LAST Ritesh Harjani
2020-02-26 13:05   ` Matthew Wilcox
2020-02-26 16:17     ` Darrick J. Wong
2020-02-26 17:26       ` Jan Kara
2020-02-27  3:24         ` Dave Chinner [this message]
2020-02-27  5:17       ` Ritesh Harjani

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=20200227032443.GI10737@dread.disaster.area \
    --to=david@fromorbit.com \
    --cc=adilger.kernel@dilger.ca \
    --cc=cmaiolino@redhat.com \
    --cc=darrick.wong@oracle.com \
    --cc=hch@infradead.org \
    --cc=jack@suse.cz \
    --cc=linux-ext4@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=riteshh@linux.ibm.com \
    --cc=tytso@mit.edu \
    --cc=willy@infradead.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).