[RFC PATCH v4 07/11] fs: statx add write zeroes unmap attribute
Christoph Hellwig
hch at lst.de
Mon May 5 22:47:22 PDT 2025
On Mon, May 05, 2025 at 10:36:54PM -0700, Darrick J. Wong wrote:
> I think STATX_* (i.e. not STATX_ATTR_*) flags have two purposes: 1) to
> declare that specific fields in struct statx actually have meaning, most
> notably in scenarios where zeroes are valid field contents; and 2) if
> filling out the field is expensive, userspace can elect not to have it
> filled by leaving the bit unset. I don't know how userspace is supposed
> to figure out which fields are expensive.
Yes.
> (I'm confused about the whole premise of /this/ patch -- it's a "fast
> zeroing" fallocate flag that causes the *device* to unmap, so that the
> filesystem can preallocate and avoid unwritten extent conversions?
Yes.
> What happens if the block device is thinp and it runs out of space?
> That seems antithetical to fallocate...)
While the origin posix_fallocate was about space preallocatіon, these
days fallocate seems to be more about extent layout and/or fast
zeroing.
I'm not a huge fan of either this or the hardware atomics as they
force a FTL layer world view which is quite ingrained but also
rather stupid, but some folks really want to go down there full
throttle, so..
More information about the Linux-nvme
mailing list