[GIT PULL] vfs fixes

From: Christian Brauner
Date: Fri Jul 04 2025 - 05:11:07 EST


Hey Linus,

This includes a fix for a priority inversion in eventpoll. I did
consider it a fix and it is a single commit but it is a bit more code
than we would usually let through after -rc2. If you want me to delay
that until the merge window that's perfectly fine. You can either just
revert right after merging this or I can send you a new pull request
tomorrow.

/* Summary */

This contains another round of fixes for this cycle:

- Fix a regression caused by the anonymous inode rework. Making them
regular files causes various places in the kernel to tip over starting
with io_uring. Revert to the former status quo and port our assertion
to be based on checking the inode so we don't lose the valuable
VFS_*_ON_*() assertions that have already helped discover weird
behavior our outright bugs.

- Fix the the upper bound calculation in fuse_fill_write_pages().

- Fix priority inversion issues in the eventpoll code.

- Make secretmen use anon_inode_make_secure_inode() to avoid bypassing
the LSM layer.

- Fix a netfs hang due to missing case in final DIO read result
collection.

- Fix a double put of the netfs_io_request struct.

- Provide some helpers to abstract out NETFS_RREQ_IN_PROGRESS flag
wrangling.

- Fix infinite looping in netfs_wait_for_pause/request().

- Fix a netfs ref leak on an extra subrequest inserted into a request's
list of subreqs.

- Fix various cifs RPC callbacks to set NETFS_SREQ_NEED_RETRY if a
subrequest fails retriably.

- Fix a cifs warning in the workqueue code when reconnecting a channel.

- Fix the updating of i_size in netfs to avoid a race between testing if
we should have extended the file with a DIO write and changing i_size.

- Merge the places in netfs that update i_size on write.

- Fix coredump socket selftests.

/* Testing */

gcc (Debian 14.2.0-19) 14.2.0
Debian clang version 19.1.7 (3)

No build failures or warnings were observed.

/* Conflicts */

Merge conflicts with mainline
=============================

No known conflicts.

Merge conflicts with other trees
================================

No known conflicts.

The following changes since commit e04c78d86a9699d136910cfc0bdcf01087e3267e:

Linux 6.16-rc2 (2025-06-15 13:49:41 -0700)

are available in the Git repository at:

git@xxxxxxxxxxxxxxxxxxx:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.16-rc5.fixes

for you to fetch changes up to 1e7ab6f67824343ee3e96f100f0937c393749a8a:

anon_inode: rework assertions (2025-07-02 14:41:39 +0200)

Please consider pulling these changes from the signed vfs-6.16-rc5.fixes tag.

Thanks!
Christian

----------------------------------------------------------------
vfs-6.16-rc5.fixes

----------------------------------------------------------------
Christian Brauner (2):
Merge patch series "netfs, cifs: Fixes to retry-related code"
anon_inode: rework assertions

David Howells (9):
netfs: Fix hang due to missing case in final DIO read result collection
netfs: Fix double put of request
netfs: Provide helpers to perform NETFS_RREQ_IN_PROGRESS flag wangling
netfs: Fix looping in wait functions
netfs: Fix ref leak on inserted extra subreq in write retry
netfs: Fix i_size updating
netfs: Merge i_size update functions
netfs: Renumber the NETFS_RREQ_* flags to make traces easier to read
netfs: Update tracepoints in a number of ways

Joanne Koong (1):
fuse: fix fuse_fill_write_pages() upper bound calculation

Nam Cao (2):
selftests/coredump: Fix "socket_detect_userspace_client" test failure
eventpoll: Fix priority inversion problem

Paulo Alcantara (3):
smb: client: set missing retry flag in smb2_writev_callback()
smb: client: set missing retry flag in cifs_readv_callback()
smb: client: set missing retry flag in cifs_writev_callback()

Shivank Garg (1):
fs: export anon_inode_make_secure_inode() and fix secretmem LSM bypass

fs/anon_inodes.c | 23 +-
fs/eventpoll.c | 458 +++++++---------------
fs/exec.c | 9 +-
fs/fuse/file.c | 5 +-
fs/libfs.c | 8 +-
fs/namei.c | 2 +-
fs/netfs/buffered_write.c | 38 +-
fs/netfs/direct_write.c | 16 -
fs/netfs/internal.h | 26 +-
fs/netfs/main.c | 6 +-
fs/netfs/misc.c | 50 ++-
fs/netfs/read_collect.c | 16 +-
fs/netfs/write_collect.c | 14 +-
fs/netfs/write_retry.c | 3 +-
fs/smb/client/cifssmb.c | 22 ++
fs/smb/client/smb2pdu.c | 27 +-
include/linux/fs.h | 2 +
include/linux/netfs.h | 21 +-
include/trace/events/netfs.h | 29 +-
mm/secretmem.c | 9 +-
tools/testing/selftests/coredump/stackdump_test.c | 5 +
21 files changed, 351 insertions(+), 438 deletions(-)