Re: [PATCH v2 0/9] fallocate: introduce FALLOC_FL_WRITE_ZEROES flag
From: Zhang Yi
Date: Wed Jul 02 2025 - 23:36:15 EST
On 2025/6/23 18:46, Christian Brauner wrote:
> 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
Hi Christian,
I noticed that this patch series doesn't appear to be merged into this
branch. Just wondering if it might have been missed?
Best regards,
Yi.
>
> [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