[GIT PULL for v7.0] vfs fixes

From: Christian Brauner

Date: Wed Feb 25 2026 - 09:17:17 EST


Hey Linus,

/* Summary */

This contains fixes for this cycle:

- Fix an uninitialized variable in file_getattr(). The flags_valid field
wasn't initialized before calling vfs_fileattr_get(), triggering KMSAN
uninit-value reports in fuse.

- Fix writeback wakeup and logging timeouts when DETECT_HUNG_TASK is not
enabled. sysctl_hung_task_timeout_secs is 0 in that case causing
spurious "waiting for writeback completion for more than 1 seconds"
warnings.

- Fix a null-ptr-deref in do_statmount() when the mount is internal.

- Add missing kernel-doc description for the @private parameter in
iomap_readahead().

- Fix mount namespace creation to hold namespace_sem across the mount
copy in create_new_namespace(). The previous drop-and-reacquire
pattern was fragile and failed to clean up mount propagation links if
the real rootfs was a shared or dependent mount.

- Fix /proc mount iteration where m->index wasn't updated when
m->show() overflows, causing a restart to repeatedly show the same
mount entry in a rapidly expanding mount table.

- Return EFSCORRUPTED instead of ENOSPC in minix_new_inode() when the
inode number is out of range.

- Fix unshare(2) when CLONE_NEWNS is set and current->fs isn't shared.
copy_mnt_ns() received the live fs_struct so if a subsequent namespace
creation failed the rollback would leave pwd and root pointing to
detached mounts. Always allocate a new fs_struct when CLONE_NEWNS is
requested.

- fserror bug fixes:

- Remove the unused fsnotify_sb_error() helper now that all callers
have been converted to fserror_report_metadata.

- Fix a lockdep splat in fserror_report() where igrab() takes
inode::i_lock which can be held in IRQ context. Replace igrab() with
a direct i_count bump since filesystems should not report inodes that
are about to be freed or not yet exposed.

- Handle error pointer in procfs for try_lookup_noperm().

- Fix an integer overflow in ep_loop_check_proc() where recursive calls
returning INT_MAX would overflow when +1 is added, breaking the
recursion depth check.

- Fix a misleading break in pidfs.

/* Conflicts */

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

No known conflicts.

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

The following changes since commit 770aaedb461a055f79b971d538678942b6607894:

Merge tag 'bootconfig-v7.0' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace (2026-02-13 19:33:39 -0800)

are available in the Git repository at:

git@xxxxxxxxxxxxxxxxxxx:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.0-rc2.fixes

for you to fetch changes up to 4a1ddb0f1c48c2b56f21d8b5200e2e29adf4c1df:

pidfs: avoid misleading break (2026-02-24 12:09:00 +0100)

----------------------------------------------------------------
vfs-7.0-rc2.fixes

Please consider pulling these changes from the signed vfs-7.0-rc2.fixes tag.

Thanks!
Christian

----------------------------------------------------------------
Al Viro (1):
unshare: fix unshare_fs() handling

Christian Brauner (4):
mount: hold namespace_sem across copy in create_new_namespace()
namespace: fix proc mount iteration
Merge patch series "fserror: bug fixes"
pidfs: avoid misleading break

Darrick J. Wong (2):
fsnotify: drop unused helper
fserror: fix lockdep complaint when igrabbing inode

Edward Adam Davis (1):
fs: init flags_valid before calling vfs_fileattr_get

Ethan Tidmore (1):
proc: Fix pointer error dereference

Hongbo Li (1):
iomap: Describe @private in iomap_readahead()

Huacai Chen (1):
writeback: Fix wakeup and logging timeouts for !DETECT_HUNG_TASK

Jann Horn (1):
eventpoll: Fix integer overflow in ep_loop_check_proc()

Jori Koolstra (1):
minix: Correct errno in minix_new_inode

Qing Wang (1):
statmount: Fix the null-ptr-deref in do_statmount()

fs/eventpoll.c | 5 +-
fs/file_attr.c | 2 +-
fs/fs-writeback.c | 9 ++--
fs/iomap/buffered-io.c | 1 +
fs/iomap/ioend.c | 46 ++++++++++++++++
fs/minix/bitmap.c | 2 +-
fs/namespace.c | 133 ++++++++++++++++++++++++++---------------------
fs/pidfs.c | 10 ++--
fs/proc/base.c | 3 ++
include/linux/fsnotify.h | 13 -----
kernel/fork.c | 2 +-
11 files changed, 139 insertions(+), 87 deletions(-)