Re: [PATCH v2 0/9] fallocate: introduce FALLOC_FL_WRITE_ZEROES flag
From: Christian Brauner
Date: Mon Jun 23 2025 - 06:51:25 EST
On Thu, 19 Jun 2025 19:17:57 +0800, Zhang Yi wrote:
> From: Zhang Yi <yi.zhang@xxxxxxxxxx>
>
> Changes since v1:
> - Rebase codes on 6.16-rc2.
> - Use max_{hw|user}_wzeroes_unmap_sectors queue limits instead of
> BLK_FEAT_WRITE_ZEROES_UNMAP feature to represent the status of the
> unmap write zeroes operation as Christoph and Darrick suggested. This
> redoes the first 5 patches, so remove all the reviewed-by tags,
> please review them again.
> - Simplify the description of FALLOC_FL_WRITE_ZEROES in patch 06 as
> Darrick suggested.
> - Revise the check order of FALLOC_FL_WRITE_ZEROES in patch 08 as
> Christoph suggested.
> Changes since RFC v4:
> - Rebase codes on 6.16-rc1.
> - Add a new queue_limit flag, and change the write_zeroes_unmap sysfs
> interface to RW mode. User can disable the unmap write zeroes
> operation by writing '0' to it when the operation is slow.
> - Modify the documentation of write_zeroes_unmap sysfs interface as
> Martin suggested.
> - Remove the statx interface.
> - Make the bdev and ext4 don't allow to submit FALLOC_FL_WRITE_ZEROES
> if the block device does not enable the unmap write zeroes operation,
> it should return -EOPNOTSUPP.
> Changes sicne RFC v3:
> - Rebase codes on 6.15-rc2.
> - Add a note in patch 1 to indicate that the unmap write zeros command
> is not always guaranteed as Christoph suggested.
> - Rename bdev_unmap_write_zeroes() helper and move it to patch 1 as
> Christoph suggested.
> - Introduce a new statx attribute flag STATX_ATTR_WRITE_ZEROES_UNMAP as
> Christoph and Christian suggested.
> - Exchange the order of the two patches that modified
> blkdev_fallocate() as Christoph suggested.
> Changes since RFC v2:
> - Rebase codes on next-20250314.
> - Add support for nvme multipath.
> - Add support for NVMeT with block device backing.
> - Clear FALLOC_FL_WRITE_ZEROES if dm clear
> limits->max_write_zeroes_sectors.
> - Complement the counterpart userspace tools(util-linux and xfs_io)
> and tests(blktests and xfstests), please see below for details.
> Changes since RFC v1:
> - Switch to add a new write zeroes operation, FALLOC_FL_WRITE_ZEROES,
> in fallocate, instead of just adding a supported flag to
> FALLOC_FL_ZERO_RANGE.
> - Introduce a new flag BLK_FEAT_WRITE_ZEROES_UNMAP to the block
> device's queue limit features, and implement it on SCSI sd driver,
> NVMe SSD driver and dm driver.
> - Implement FALLOC_FL_WRITE_ZEROES on both the ext4 filesystem and
> block device (bdev).
>
> [...]
If needed, the branch can be declared stable and thus be used as base
for other work.
---
Applied to the vfs-6.17.fallocate branch of the vfs/vfs.git tree.
Patches in the vfs-6.17.fallocate branch should appear in linux-next soon.
Please report any outstanding bugs that were missed during review in a
new review to the original patch series allowing us to drop it.
It's encouraged to provide Acked-bys and Reviewed-bys even though the
patch has now been applied. If possible patch trailers will be updated.
Note that commit hashes shown below are subject to change due to rebase,
trailer updates or similar. If in doubt, please check the listed branch.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs.git
branch: vfs-6.17.fallocate
[1/9] block: introduce max_{hw|user}_wzeroes_unmap_sectors to queue limits
https://git.kernel.org/vfs/vfs/c/2695a9b086fd
[2/9] nvme: set max_hw_wzeroes_unmap_sectors if device supports DEAC bit
https://git.kernel.org/vfs/vfs/c/bf07c1180194
[3/9] nvmet: set WZDS and DRB if device enables unmap write zeroes operation
https://git.kernel.org/vfs/vfs/c/a6c7ab5adcba
[4/9] scsi: sd: set max_hw_wzeroes_unmap_sectors if device supports SD_ZERO_*_UNMAP
https://git.kernel.org/vfs/vfs/c/92372ed1cc88
[5/9] dm: clear unmap write zeroes limits when disabling write zeroes
https://git.kernel.org/vfs/vfs/c/e383d550e716
[6/9] fs: introduce FALLOC_FL_WRITE_ZEROES to fallocate
https://git.kernel.org/vfs/vfs/c/1ed1b5df86ec
[7/9] block: factor out common part in blkdev_fallocate()
https://git.kernel.org/vfs/vfs/c/96433508c8c0
[8/9] block: add FALLOC_FL_WRITE_ZEROES support
https://git.kernel.org/vfs/vfs/c/2b4e5f9b3eb9
[9/9] ext4: add FALLOC_FL_WRITE_ZEROES support
https://git.kernel.org/vfs/vfs/c/51954e469396