summaryrefslogtreecommitdiff
path: root/include/uapi/linux
diff options
context:
space:
mode:
authorZhang Yi <yi.zhang@huawei.com>2026-09-03 20:35:34 +0800
committerTheodore Ts'o <tytso@mit.edu>2026-10-08 11:11:25 -0400
commitb9dc57ecc8a5ba34299e737d4954c1df54f16ea8 (patch)
tree82715284de8d9b8a4afefb8bbca9f8bf0158f559 /include/uapi/linux
parent7894caa160a917b5c69e6e11773106634f70fe28 (diff)
downloadlinux-next-b9dc57ecc8a5ba34299e737d4954c1df54f16ea8.tar.gz
linux-next-b9dc57ecc8a5ba34299e737d4954c1df54f16ea8.zip
ext4: submit and wait for pending disksize-grow I/O on writeback
When the current writeback pass begins beyond the disksize-grow-pending zeroed EOF block, the ioend worker would otherwise have to wait for the pending EOF block to complete before it can advance i_disksize. Otherwise the old EOF block could be exposed as stale data once i_disksize advances past it. Therefore, introduce the ioend mechanism for the pending range, tag ioends that cover the pending zeroed EOF block which straddles i_disksize with EXT4_IOMAP_IOEND_DISKSIZE_GROW_IO in ext4_iomap_writeback_submit(), and clear the bit and wake up all waiters in ext4_iomap_end_bio() when such an ioend completes. Clearing EXT4_IOMAP_IOEND_DISKSIZE_GROW_IO does not depend on whether the disksize grow I/O succeeds. That is, even if the I/O fails, we still allow subsequent writes in the range to update i_disksize. This is consistent with the previous behavior, and we rely on data_err=abort to prevent metadata updates when data write failures occur. In order to avoid the ioend that passes the pending range waiting for a long time, proactively submit the pending range first in ext4_iomap_writepages() so it completes in parallel with the rest of the writeback. Note that the handling of discarding the zeroed EOF folio will be processed later, otherwise the bit will be set forever. EXT4_STATE_DISKSIZE_GROW_PENDING will be set after everthing is done. Signed-off-by: Zhang Yi <yi.zhang@huawei.com> Link: https://patch.msgid.link/20260903123543.2302999-23-yi.zhang@huaweicloud.com Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Diffstat (limited to 'include/uapi/linux')
0 files changed, 0 insertions, 0 deletions