diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2024-09-04 09:33:57 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2024-09-04 09:33:57 -0700 |
commit | 4356ab331c8f0dbed0f683abde345cd5503db1e4 (patch) | |
tree | c0c874795999b00484c91ae073c8ed444bcf003a | |
parent | c7fb1692dc0139f95bd4131d3d5fa5eba2ba569e (diff) | |
parent | 72a6e22c604c95ddb3b10b5d3bb85b6ff4dbc34f (diff) | |
download | lwn-4356ab331c8f0dbed0f683abde345cd5503db1e4.tar.gz lwn-4356ab331c8f0dbed0f683abde345cd5503db1e4.zip |
Merge tag 'vfs-6.11-rc7.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs
Pull vfs fixes from Christian Brauner:
"Two netfs fixes for this merge window:
- Ensure that fscache_cookie_lru_time is deleted when the fscache
module is removed to prevent UAF
- Fix filemap_invalidate_inode() to use invalidate_inode_pages2_range()
Before it used truncate_inode_pages_partial() which causes
copy_file_range() to fail on cifs"
* tag 'vfs-6.11-rc7.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
fscache: delete fscache_cookie_lru_timer when fscache exits to avoid UAF
mm: Fix filemap_invalidate_inode() to use invalidate_inode_pages2_range()
-rw-r--r-- | fs/netfs/fscache_main.c | 1 | ||||
-rw-r--r-- | mm/filemap.c | 2 |
2 files changed, 2 insertions, 1 deletions
diff --git a/fs/netfs/fscache_main.c b/fs/netfs/fscache_main.c index 42e98bb523e3..49849005eb7c 100644 --- a/fs/netfs/fscache_main.c +++ b/fs/netfs/fscache_main.c @@ -103,6 +103,7 @@ void __exit fscache_exit(void) kmem_cache_destroy(fscache_cookie_jar); fscache_proc_cleanup(); + timer_shutdown_sync(&fscache_cookie_lru_timer); destroy_workqueue(fscache_wq); pr_notice("FS-Cache unloaded\n"); } diff --git a/mm/filemap.c b/mm/filemap.c index d62150418b91..0ca9c1377b68 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -4231,7 +4231,7 @@ int filemap_invalidate_inode(struct inode *inode, bool flush, } /* Wait for writeback to complete on all folios and discard. */ - truncate_inode_pages_range(mapping, start, end); + invalidate_inode_pages2_range(mapping, start / PAGE_SIZE, end / PAGE_SIZE); unlock: filemap_invalidate_unlock(mapping); |