diff options
| author | Christian Brauner <brauner@kernel.org> | 2025-05-27 22:06:30 +0300 |
|---|---|---|
| committer | Christian Brauner <brauner@kernel.org> | 2025-05-27 22:06:30 +0300 |
| commit | 5722bcd7d373768f9a20517ce271f661bb9bb258 (patch) | |
| tree | 8f8859d612b8fda307882b6b2488919c4e1d7871 /include | |
| parent | 015a99fa76650e7d6efa3e36f20c0f5b346fe9ce (diff) | |
| parent | a1d98e4ffb972ab007f5de850ef53c2a46cacf15 (diff) | |
| download | linux-5722bcd7d373768f9a20517ce271f661bb9bb258.tar.xz | |
Merge patch series "dropbehind fixes and cleanups"
Jens Axboe <axboe@kernel.dk> says:
As per the thread here:
https://lore.kernel.org/linux-fsdevel/20250525083209.GS2023217@ZenIV/
there was an issue with the dropbehind support, and hence it got
reverted (effectively) for the 6.15 kernel release. The problem stems
from the fact that the folio can get redirtied and/or scheduled for
writeback after the initial dropbehind test, and before we have it
locked again for invalidation.
Patches 1+2 add a generic helper that both the read and write side can
use, and which checks for !dirty && !writeback before going ahead with
the invalidation. Patch 3 reverts the FOP_DONTCACHE disable, and patches
4 and 5 do a bit of cleanup work to further unify how the read and write
side handling works.
This can reasonably be considered a 2 part series, as 1-3 fix the issue
and could go to stable, while 4-5 just cleanup the code.
* patches from https://lore.kernel.org/20250527133255.452431-1-axboe@kernel.dk:
mm/filemap: unify dropbehind flag testing and clearing
mm/filemap: unify read/write dropbehind naming
Revert "Disable FOP_DONTCACHE for now due to bugs"
mm/filemap: use filemap_end_dropbehind() for read invalidation
mm/filemap: gate dropbehind invalidate on folio !dirty && !writeback
Link: https://lore.kernel.org/20250527133255.452431-1-axboe@kernel.dk
Signed-off-by: Christian Brauner <brauner@kernel.org>
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/fs.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/linux/fs.h b/include/linux/fs.h index 0db87f8e676c..57c3db3ef6ad 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -2207,7 +2207,7 @@ struct file_operations { /* Supports asynchronous lock callbacks */ #define FOP_ASYNC_LOCK ((__force fop_flags_t)(1 << 6)) /* File system supports uncached read/write buffered IO */ -#define FOP_DONTCACHE 0 /* ((__force fop_flags_t)(1 << 7)) */ +#define FOP_DONTCACHE ((__force fop_flags_t)(1 << 7)) /* Wrap a directory iterator that needs exclusive inode access */ int wrap_directory_iterator(struct file *, struct dir_context *, |
