linux-xfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@lst.de>
To: Dave Chinner <david@fromorbit.com>
Cc: Florian Weimer <fw@deneb.enyo.de>, Christoph Hellwig <hch@lst.de>,
	Florian Weimer <fweimer@redhat.com>,
	Matthew Wilcox <willy@infradead.org>,
	Hans Holmberg <hans.holmberg@wdc.com>,
	linux-xfs@vger.kernel.org, Carlos Maiolino <cem@kernel.org>,
	"Darrick J . Wong" <djwong@kernel.org>,
	linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
	libc-alpha@sourceware.org
Subject: Re: [RFC] xfs: fake fallocate success for always CoW inodes
Date: Mon, 10 Nov 2025 10:37:01 +0100	[thread overview]
Message-ID: <20251110093701.GB22674@lst.de> (raw)
In-Reply-To: <aRESlvWf9VquNzx3@dread.disaster.area>

On Mon, Nov 10, 2025 at 09:15:50AM +1100, Dave Chinner wrote:
> On Sat, Nov 08, 2025 at 01:30:18PM +0100, Florian Weimer wrote:
> > * Christoph Hellwig:
> > 
> > > On Thu, Nov 06, 2025 at 05:31:28PM +0100, Florian Weimer wrote:
> > >> It's been a few years, I think, and maybe we should drop the allocation
> > >> logic from posix_fallocate in glibc?  Assuming that it's implemented
> > >> everywhere it makes sense?
> > >
> > > I really think it should go away.  If it turns out we find cases where
> > > it was useful we can try to implement a zeroing fallocate in the kernel
> > > for the file system where people want it.
> 
> This is what the shiny new FALLOC_FL_WRITE_ZEROS command is supposed
> to provide. We don't have widepsread support in filesystems for it
> yet, though.

Not really.  FALLOC_FL_WRITE_ZEROS does hardware-offloaded zeroing.
I.e., it does the same think as the just write zeroes thing as the
current glibc fallback and is just as bad for the same reasons.  It
also is something that doesn't make any sense to support in a write
out of place file system.

> Failing to check the return value of a library call that documents
> EOPNOTSUPP as a valid error is a bug. IOWs, the above code *should*
> SIGBUS on the mmap access, because it failed to verify that the file
> extension operation actually worked.
> 
> I mean, if this was "ftruncate(1); mmap(); *p =1" and ftruncate()
> failed and so SIGBUS was delivered, there would be no doubt that
> this is an application bug. Why is should we treat errors returned
> by fallocate() and/or posix_fallocate() any different here?

I think what Florian wants (although I might be misunderstanding him)
is an interface that will increase the file size up to the passed in
size, but never reduce it and lose data.

> > If we can get an fallocate mode that we can use as a fallback to
> > increase the file size with a zero flag argument, we can definitely
> 
> The fallocate() API already support that, in two different ways:
> FALLOC_FL_ZERO_RANGE and FALLOC_FL_WRITE_ZEROS. 

They are both quite different as they both zero the entire passed in
range, even if it already contains data, which is completely different
from the posix_fallocate or fallocate FALLOC_FL_ALLOCATE_RANGE semantics
that leave any existing data intact.


  parent reply	other threads:[~2025-11-10  9:37 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-06 13:35 [RFC] xfs: fake fallocate success for always CoW inodes Hans Holmberg
2025-11-06 13:48 ` Florian Weimer
2025-11-06 13:52   ` Christoph Hellwig
2025-11-06 14:42     ` Matthew Wilcox
2025-11-06 14:46       ` Christoph Hellwig
2025-11-11  8:31         ` Hans Holmberg
2025-11-11  9:05           ` hch
2025-11-11  9:50             ` Florian Weimer
2025-11-11 13:40               ` hch
2025-11-06 16:31       ` Florian Weimer
2025-11-06 17:05         ` Christoph Hellwig
2025-11-08 12:30           ` Florian Weimer
2025-11-09 22:15             ` Dave Chinner
2025-11-10  5:27               ` Florian Weimer
2025-11-10  9:38                 ` Christoph Hellwig
2025-11-10 10:03                   ` Florian Weimer
2025-11-10 20:28                 ` Dave Chinner
2025-11-11  8:56                   ` Christoph Hellwig
2025-11-10  9:37               ` Christoph Hellwig [this message]
2025-11-10  9:44                 ` Florian Weimer
2025-11-10 21:33                 ` Dave Chinner
2025-11-11  9:04                   ` Christoph Hellwig
2025-11-11  9:30                   ` Florian Weimer
2025-11-10  9:31             ` Christoph Hellwig
2025-11-10  9:48               ` truncatat? was, " Christoph Hellwig
2025-11-10 10:00                 ` Florian Weimer
2025-11-10  9:49               ` Florian Weimer
2025-11-10  9:52                 ` 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=20251110093701.GB22674@lst.de \
    --to=hch@lst.de \
    --cc=cem@kernel.org \
    --cc=david@fromorbit.com \
    --cc=djwong@kernel.org \
    --cc=fw@deneb.enyo.de \
    --cc=fweimer@redhat.com \
    --cc=hans.holmberg@wdc.com \
    --cc=libc-alpha@sourceware.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-xfs@vger.kernel.org \
    --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).