[GIT PULL for v7.0] vfs fixes

From: Christian Brauner

Date: Sun Mar 29 2026 - 17:06:30 EST


Hey Linus,

Sorry for being late with this. Feel free to delay this after you have
tagged. I didn't get around to sending a pull request earlier
unfortunately as the vfs ci took quite a while to run.

/* Summary */

This contains fixes for this cycle:

- Fix netfs_limit_iter() hitting BUG() when an ITER_KVEC iterator reaches
it via core dump writes to 9P filesystems. Add ITER_KVEC handling
following the same pattern as the existing ITER_BVEC code.

- Fix a NULL pointer dereference in the netfs unbuffered write retry path
when the filesystem (e.g., 9P) doesn't set the prepare_write operation.

- Clear I_DIRTY_TIME in sync_lazytime for filesystems implementing
->sync_lazytime. Without this the flag stays set and may cause
additional unnecessary calls during inode deactivation.

- Increase tmpfs size in mount_setattr selftests. A recent commit bumped
the ext4 image size to 2 GB but didn't adjust the tmpfs backing store,
so mkfs.ext4 fails with ENOSPC writing metadata.

- Fix an invalid folio access in iomap when i_blkbits matches the folio
size but differs from the I/O granularity. The cur_folio pointer would
not get invalidated and iomap_read_end() would still be called on it
despite the IO helper owning it.

- Fix hash_name() docstring.

- Fix read abandonment during netfs retry where the subreq variable used
for abandonment could be uninitialized on the first pass or point to a
deleted subrequest on later passes.

- Don't block sync for filesystems with no data integrity guarantees. Add
a SB_I_NO_DATA_INTEGRITY superblock flag replacing the per-inode
AS_NO_DATA_INTEGRITY mapping flag so sync kicks off writeback but
doesn't wait for flusher threads. This fixes a suspend-to-RAM hang on
fuse-overlayfs where the flusher thread blocks when the fuse daemon is
frozen.

- Fix a lockdep splat in iomap when reads fail. iomap_read_end_io()
invokes fserror_report() which calls igrab() taking i_lock in hardirq
context while i_lock is normally held with interrupts enabled. Kick
failed read handling to a workqueue.

- Remove the redundant netfs_io_stream::front member and use
stream->subrequests.next instead, fixing a potential issue in the
direct write code path.

/* Conflicts */

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

No known conflicts.

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

The following changes since commit d320f160aa5ff36cdf83c645cca52b615e866e32:

iomap: reject delalloc mappings during writeback (2026-03-04 14:31:56 +0100)

are available in the Git repository at:

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

for you to fetch changes up to 0e764b9d46071668969410ec5429be0e2f38c6d3:

netfs: Fix the handling of stream->front by removing it (2026-03-26 15:18:45 +0100)

----------------------------------------------------------------
vfs-7.0-rc6.fixes

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

Thanks!
Christian

----------------------------------------------------------------
Christian Brauner (1):
selftests/mount_setattr: increase tmpfs size for idmapped mount tests

Christoph Hellwig (1):
fs: clear I_DIRTY_TIME in sync_lazytime

Darrick J. Wong (1):
iomap: fix lockdep complaint when reads fail

David Howells (2):
netfs: Fix read abandonment during retry
netfs: Fix the handling of stream->front by removing it

Deepanshu Kartikey (2):
netfs: Fix kernel BUG in netfs_limit_iter() for ITER_KVEC iterators
netfs: Fix NULL pointer dereference in netfs_unbuffered_write() on retry

Joanne Koong (2):
iomap: fix invalid folio access when i_blkbits differs from I/O granularity
writeback: don't block sync for filesystems with no data integrity guarantees

Jori Koolstra (1):
vfs: fix docstring of hash_name()

fs/fs-writeback.c | 36 +++++++++++----
fs/fuse/file.c | 4 +-
fs/fuse/inode.c | 1 +
fs/iomap/bio.c | 51 +++++++++++++++++++++-
fs/iomap/buffered-io.c | 15 ++++---
fs/namei.c | 10 ++++-
fs/netfs/buffered_read.c | 3 +-
fs/netfs/direct_read.c | 3 +-
fs/netfs/direct_write.c | 15 +++++--
fs/netfs/iterator.c | 43 ++++++++++++++++++
fs/netfs/read_collect.c | 4 +-
fs/netfs/read_retry.c | 5 ++-
fs/netfs/read_single.c | 1 -
fs/netfs/write_collect.c | 4 +-
fs/netfs/write_issue.c | 3 +-
include/linux/fs/super_types.h | 1 +
include/linux/netfs.h | 1 -
include/linux/pagemap.h | 11 -----
include/trace/events/netfs.h | 8 ++--
.../selftests/mount_setattr/mount_setattr_test.c | 2 +-
20 files changed, 168 insertions(+), 53 deletions(-)