/* Summary */ This contains fixes for this merge window: VFS: - Fix the name of file lease slab cache. When file leases were split out of file locks the name of the file lock slab cache was used for the file leases slab cache as well. - Fix a type in take_fd() helper. - Fix infinite directory iteration for stable offsets in tmpfs. - When the icache is pruned all reclaimable inodes are marked with I_FREEING and other processes that try to lookup such inodes will block. But some filesystems like ext4 can trigger lookups in their inode evict callback causing deadlocks. Ext4 does such lookups if the ea_inode feature is used whereby a separate inode may be used to store xattrs. Introduce I_LRU_ISOLATING which pins the inode while its pages are reclaimed. This avoids inode deletion during inode_lru_isolate() avoiding the deadlock and evict is made to wait until I_LRU_ISOLATING is done. netfs: - Fault in smaller chunks for non-large folio mappings for filesystems that haven't been converted to large folios yet. - Fix the CONFIG_NETFS_DEBUG config option. The config option was renamed a short while ago and that introduced two minor issues. First, it depended on CONFIG_NETFS whereas it wants to depend on CONFIG_NETFS_SUPPORT. The former doesn't exist, while the latter does. Second, the documentation for the config option wasn't fixed up. - Revert the removal of the PG_private_2 writeback flag as ceph is using it and fix how that flag is handled in netfs. - Fix DIO reads on 9p. A program watching a file on a 9p mount wouldn't see any changes in the size of the file being exported by the server if the file was changed directly in the source filesystem. Fix this by attempting to read the full size specified when a DIO read is requested. - Fix a NULL pointer dereference bug due to a data race where a cachefiles cookies was retired even though it was still in use. Check the cookie's n_accesses counter before discarding it. nsfs: - Fix ioctl declaration for NS_GET_MNTNS_ID from _IO() to _IOR() as the kernel is writing to userspace. pidfs: - Prevent the creation of pidfds for kthreads until we have a use-case for it and we know the semantics we want. It also confuses userspace why they can get pidfds for kthreads. squashfs: - Fix an unitialized value bug reported by KMSAN caused by a corrupted symbolic link size read from disk. Check that the symbolic link size is not larger than expected. The following changes since commit 8400291e289ee6b2bf9779ff1c83a291501f017b: Linux 6.11-rc1 (2024-07-28 14:19:55 -0700) are available in the Git repository at: git@xxxxxxxxxxxxxxxxxxx:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.11-rc4.fixes for you to fetch changes up to 810ee43d9cd245d138a2733d87a24858a23f577d: Squashfs: sanity check symbolic link size (2024-08-13 13:56:46 +0200) ---------------------------------------------------------------- vfs-6.11-rc4.fixes ---------------------------------------------------------------- Christian Brauner (2): nsfs: fix ioctl declaration pidfd: prevent creation of pidfds for kthreads David Howells (2): netfs, ceph: Revert "netfs: Remove deprecated use of PG_private_2 as a second writeback flag" netfs: Fix handling of USE_PGPRIV2 and WRITE_TO_CACHE flags Dominique Martinet (1): 9p: Fix DIO read through netfs Lukas Bulwahn (1): netfs: clean up after renaming FSCACHE_DEBUG config Mathias Krause (1): file: fix typo in take_fd() comment Matthew Wilcox (Oracle) (1): netfs: Fault in smaller chunks for non-large folio mappings Max Kellermann (1): fs/netfs/fscache_cookie: add missing "n_accesses" check Omar Sandoval (1): filelock: fix name of file_lease slab cache Phillip Lougher (1): Squashfs: sanity check symbolic link size Zhihao Cheng (1): vfs: Don't evict inode under the inode lru traversing context yangerkun (1): libfs: fix infinite directory reads for offset dir Documentation/filesystems/caching/fscache.rst | 8 +- fs/9p/vfs_addr.c | 3 +- fs/afs/file.c | 3 +- fs/ceph/addr.c | 28 ++++- fs/ceph/inode.c | 2 - fs/inode.c | 39 ++++++- fs/libfs.c | 35 ++++-- fs/locks.c | 2 +- fs/netfs/Kconfig | 2 +- fs/netfs/buffered_read.c | 123 +++++++++++++++++--- fs/netfs/buffered_write.c | 2 +- fs/netfs/fscache_cookie.c | 4 + fs/netfs/io.c | 161 +++++++++++++++++++++++++- fs/netfs/objects.c | 10 -- fs/netfs/write_issue.c | 4 +- fs/nfs/fscache.c | 5 +- fs/nfs/fscache.h | 2 - fs/smb/client/file.c | 3 +- fs/squashfs/inode.c | 7 +- include/linux/file.h | 2 +- include/linux/fs.h | 5 + include/linux/netfs.h | 3 - include/trace/events/netfs.h | 2 + include/uapi/linux/nsfs.h | 3 +- kernel/fork.c | 25 +++- 25 files changed, 412 insertions(+), 71 deletions(-)