Repository navigation
ext4: never fall back to buffered I/O for atomic direct writes - #1281
blktests-ci-kpd[bot] wants to merge 1 commit into
Conversation
|
Upstream branch: 893e117 |
00cc4ca to
7efd8cd
Compare
|
Upstream branch: 50d05c7 |
cb229f3 to
ae7488e
Compare
7efd8cd to
a0aeca9
Compare
|
Upstream branch: 5225b8e |
ae7488e to
992ce45
Compare
a0aeca9 to
772381e
Compare
|
Upstream branch: 2f0c1cf |
3 similar comments
|
Upstream branch: 2f0c1cf |
|
Upstream branch: 2f0c1cf |
|
Upstream branch: 2f0c1cf |
992ce45 to
bf679fd
Compare
772381e to
0224dee
Compare
|
Upstream branch: 2f0c1cf |
bf679fd to
4fee257
Compare
0224dee to
f14340f
Compare
|
Upstream branch: 5878583 |
4fee257 to
9a083e8
Compare
f14340f to
0e174bc
Compare
|
Upstream branch: f49a343 |
34dd2d2 to
714e7a4
Compare
38f4bbb to
372fcdc
Compare
|
Upstream branch: 6812ce4 |
714e7a4 to
8a1bb3d
Compare
372fcdc to
c6537fe
Compare
|
Upstream branch: 72d3fcf |
8a1bb3d to
c2b7d2c
Compare
c6537fe to
eebb5bc
Compare
|
Upstream branch: 551c722 |
c2b7d2c to
6616780
Compare
eebb5bc to
bbd3af0
Compare
|
Upstream branch: ce1e022 |
6616780 to
c5ac754
Compare
bbd3af0 to
a9c0b46
Compare
|
Upstream branch: e767a4e |
c5ac754 to
6915634
Compare
a9c0b46 to
72d0f5e
Compare
|
Upstream branch: a74306e |
6915634 to
5ba42f6
Compare
72d0f5e to
d980ad5
Compare
|
Upstream branch: None |
5ba42f6 to
b1f40a0
Compare
d980ad5 to
83b99cc
Compare
|
Upstream branch: 22430ae |
b1f40a0 to
1b7eb01
Compare
83b99cc to
9081535
Compare
ext4_dio_write_iter() finishes a short direct write through the page cache. For an atomic write that path only warns and then continues, which would tear the write. This came out of a block device fix [1], where an IOCB_ATOMIC direct write could complete short when only part of the buffer could be pinned, with the rest going through the buffered fallback. Christoph Hellwig noted that ext4 has the same fallback and only warns in it [2], and John Garry agreed it should reject the write instead [3]. In contrast to the block device, nothing reaches the branch on ext4 today: iomap requires the mapping to cover the whole atomic write, a buffer that can't be pinned in full fails in iomap before the bio is submitted, and a failed page cache invalidation returns -EAGAIN rather than reaching the buffered fallback. Exclude atomic writes from the fallback outright instead of WARN()-ing inside it, so any future bug yields an error rather than a torn write with a WARN(). Link: https://lore.kernel.org/linux-block/20260828-blkdev-fixes-v2-0-32f3f40cebed@columbia.edu/ [1] Link: https://lore.kernel.org/linux-block/20260907071217.GD934@lst.de/ [2] Link: https://lore.kernel.org/linux-block/a7752d1e-8ec1-44d1-a266-c287c315e8ab@oracle.com/ [3] Signed-off-by: Tal Zussman <tz2294@columbia.edu>
|
Upstream branch: 69f80fe |
1b7eb01 to
6597f17
Compare
Pull request for series with
subject: ext4: never fall back to buffered I/O for atomic direct writes
version: 1
url: https://patchwork.kernel.org/series/1161607/