From: Christian Brauner <brauner@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Christian Brauner <brauner@kernel.org>,
linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [GIT PULL for v7.4] vfs fixes
Date: Tue, 10 Nov 2026 11:47:42 +0100 [thread overview]
Message-ID: <20261110-vfs-7.4-rc3.fixes-a971ed79be85@brauner> (raw)
/* Summary */
This contains fixes for the current development cycle:
- libfs: Make readdir on tmpfs walk the offset tree in offset order
instead of d_children to avoid skipping entries or relisting the whole
directory.
It's faster too. Listing a million entries takes 114ms instead of
146ms, and 113ms instead of 470ms with four processes listing in
parallel.
- iomap: Finish the ->iomap_next() conversion that started in v7.3.
The nilfs2 and fuse ext_map iomap code added this merge window is
converted so now we can remove the ->iomap_begin()/->iomap_end()
fallback. We waited until the new iomap users from other trees were in
mainline otherwise this would have been very messy.
- errseq: Retry with the current value when the cmpxchg() in
errseq_check_and_advance() fails to avoid an old value coming back
later hiding the errors.
- aio: Hold an extra count for exit_aio() itself so it can't return
before the last free_ioctx_reqs() callback has called complete().
- pidfd: Fail the namespace ioctls with EREMOTE unless the target is
visible in the caller's pid namespace like PIDFD_GET_INFO does.
- eventpoll: Wake the next waiter when a woken waiter returns early
because of a fatal signal to avoid sleeping forever.
- backing-file: Pass RWF_NOAPPEND on to synchronous writes to the
backing file.
- initrd: Flush the deferred fput() of the ramdisk file before mounting
root.
- iov_iter: Take an unsigned long segment count in import_iovec(). The
upper 32 bits of the count passed to readv(), writev() and friends
were dropped before the UIO_MAXIOV check.
- splice: Advance the pipe tail before checking for a full bvec array
in splice_to_socket(). The last buffer was counted again, so MSG_MORE
was set although the pipe was empty and small TCP transfers waited
for the cork timeout.
- vfs:
* Reject negative offsets for SEEK_DATA and SEEK_HOLE in
default_llseek() and use must_set_pos() for its whence handling.
* Only clear tv_nsec in timestamp_truncate() when clamping changed
the seconds. Timestamps whose seconds were exactly at a filesystem
time limit lost their subsecond part.
* Don't leak the kernel-internal STATX_ATTR_CHANGE_MONOTONIC in
stx_attributes_mask.
* Clamp the FIONREAD result to the int range so a file with 4 GiB
left isn't reported as empty.
* Fix the SEEK_CUR f_lock check.
- selftests: Fix the statmount and mount_setattr tests on 32-bit and
s390, build the fchmodat2 and openat2 tests without sanitizers when
the toolchain lacks the runtimes and fix a clang warning in the
mount-notify test.
- docs: Fix a docutils warning in porting.rst.
/* Conflicts */
Merge conflicts with mainline
=============================
No known conflicts.
Merge conflicts with other trees
================================
No known conflicts.
The following changes since commit 05441d697f7f9a927264f4058cbbc6a03dfcac9d:
Merge tag 'cocci-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jlawall/linux (2026-11-03 08:36:32 -0800)
are available in the Git repository at:
git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.4-rc3.fixes
for you to fetch changes up to 1448959fe3d013ffdb8302d17e4a8fdad2d2da95:
fs: fix the SEEK_CUR f_lock condition (2026-11-09 16:04:55 +0100)
----------------------------------------------------------------
vfs-7.4-rc3.fixes
Please consider pulling these changes from the signed vfs-7.4-rc3.fixes tag.
Thanks!
Christian
----------------------------------------------------------------
Abbott Liu (1):
initrd: flush deferred fput() before mounting root
Andrea Parri (1):
iov_iter: take an unsigned long segment count in import_iovec()
Avi Weiss (2):
fs: clamp FIONREAD result to int range
splice, net: avoid MSG_MORE when the bvec array fills
Chen Linxuan (1):
pidfd: restrict task access ioctls to the caller's pid namespace
Chris Mason (1):
backing-file: pass RWF_NOAPPEND to synchronous writes
Christian Brauner (9):
libfs: make i_rwsem the lock of the offset tree
libfs: walk offset directories in offset order
libfs: end offset readdir at positions past DIR_OFFSET_EOD
Merge patch series "libfs: fix readdir of offset directories"
Merge patch series "iomap: remaining patches for iomap_iter_next conversion"
Merge patch series "errseq: fix lost writeback errors in errseq_check_and_advance()"
Merge patch series "fs: fix and deduplicate whence handling in default_llseek()"
aio: don't let exit_aio() return before complete() is done
fs: fix the SEEK_CUR f_lock condition
Hungyu Lin (1):
vfs: preserve subsecond timestamps at filesystem time limits
Jeff Layton (1):
statx: don't leak STATX_ATTR_CHANGE_MONOTONIC in stx_attributes_mask
Joanne Koong (5):
nilfs2: convert iomap ops to ->iomap_next()
fuse: convert ext_map iomap ops to ->iomap_next()
iomap: remove ->iomap_begin()/->iomap_end() legacy path
iomap: pass iomap_iter_next_fn directly instead of struct iomap_ops
Documentation: iomap: update docs to reflect iomap_iter_next model
Mani Tofigh (1):
eventpoll: wake the next waiter when a woken waiter is killed
Randy Dunlap (1):
fs: porting.rst: use literal string to avoid warning
Sasha Levin (4):
selftests/statmount: fix format warnings on 32-bit and s390
selftests/mount_setattr: build with a 64-bit off_t
selftests: probe for sanitizer support in fchmodat2 and openat2
selftests/fs/mount-notify: fix the indentation in the fsmount test
Shashank Mohan Jain (2):
errseq: don't let errseq_check_and_advance() hide later errors
lib/tests: errseq: add a concurrent check_and_advance test
Siddharth Chintamaneni (2):
fs: reject negative offsets for SEEK_DATA and SEEK_HOLE in default_llseek()
fs: use must_set_pos() in default_llseek()
Documentation/filesystems/iomap/design.rst | 140 +++++++++++++++------
Documentation/filesystems/iomap/operations.rst | 68 +++++-----
Documentation/filesystems/iomap/porting.rst | 16 ++-
Documentation/filesystems/porting.rst | 2 +-
block/fops.c | 10 +-
fs/aio.c | 4 +-
fs/backing-file.c | 7 +-
fs/btrfs/direct-io.c | 8 +-
fs/dax.c | 48 +++----
fs/erofs/data.c | 28 ++---
fs/erofs/internal.h | 3 +-
fs/erofs/zmap.c | 7 +-
fs/eventpoll.c | 11 +-
fs/exfat/file.c | 14 +--
fs/exfat/inode.c | 6 +-
fs/exfat/iomap.c | 22 +---
fs/exfat/iomap.h | 6 +-
fs/ext2/ext2.h | 3 +-
fs/ext2/file.c | 4 +-
fs/ext2/inode.c | 9 +-
fs/ext4/ext4.h | 10 +-
fs/ext4/extents.c | 8 +-
fs/ext4/file.c | 22 ++--
fs/ext4/inode.c | 58 +++------
fs/f2fs/data.c | 6 +-
fs/f2fs/f2fs.h | 3 +-
fs/f2fs/file.c | 4 +-
fs/file.c | 10 +-
fs/fuse/dax.c | 10 +-
fs/fuse/ext_map.c | 11 +-
fs/fuse/file.c | 10 +-
fs/fuse/virtio_fs.c | 3 +-
fs/gfs2/aops.c | 6 +-
fs/gfs2/bmap.c | 9 +-
fs/gfs2/bmap.h | 2 +-
fs/gfs2/file.c | 6 +-
fs/gfs2/inode.c | 6 +-
fs/hpfs/file.c | 6 +-
fs/inode.c | 3 +-
fs/internal.h | 1 -
fs/ioctl.c | 5 +-
fs/iomap/buffered-io.c | 40 +++---
fs/iomap/direct-io.c | 8 +-
fs/iomap/fiemap.c | 8 +-
fs/iomap/iter.c | 13 +-
fs/iomap/seek.c | 8 +-
fs/iomap/swapfile.c | 4 +-
fs/iomap/trace.h | 12 +-
fs/libfs.c | 133 ++++++++------------
fs/nilfs2/file.c | 2 +-
fs/nilfs2/iomap.c | 4 +-
fs/nilfs2/iomap.h | 4 +-
fs/ntfs/aops.c | 6 +-
fs/ntfs/file.c | 20 +--
fs/ntfs/inode.c | 2 +-
fs/ntfs/iomap.c | 42 ++-----
fs/ntfs/iomap.h | 10 +-
fs/ntfs3/file.c | 16 +--
fs/ntfs3/inode.c | 13 +-
fs/ntfs3/ntfs_fs.h | 3 +-
fs/pidfs.c | 8 ++
fs/read_write.c | 48 +++----
fs/remap_range.c | 6 +-
fs/splice.c | 2 +-
fs/stat.c | 6 +-
fs/xfs/xfs_aops.c | 8 +-
fs/xfs/xfs_file.c | 53 ++++----
fs/xfs/xfs_iomap.c | 55 ++------
fs/xfs/xfs_iomap.h | 16 +--
fs/xfs/xfs_iops.c | 4 +-
fs/xfs/xfs_reflink.c | 6 +-
fs/zonefs/file.c | 22 ++--
include/linux/dax.h | 18 ++-
include/linux/fs.h | 9 +-
include/linux/iomap.h | 66 +++++-----
include/linux/stat.h | 3 +
include/linux/uio.h | 8 +-
init/do_mounts_rd.c | 5 +
lib/errseq.c | 29 +++--
lib/iov_iter.c | 6 +-
lib/tests/errseq_kunit.c | 110 +++++++++++++++-
mm/shmem.c | 2 +-
tools/testing/selftests/fchmodat2/Makefile | 18 ++-
.../filesystems/mount-notify/mount-notify_test.c | 8 +-
.../testing/selftests/filesystems/openat2/Makefile | 18 ++-
.../filesystems/statmount/statmount_test.c | 4 +-
.../filesystems/statmount/statmount_test_ns.c | 5 +-
tools/testing/selftests/mount_setattr/Makefile | 2 +-
88 files changed, 776 insertions(+), 732 deletions(-)
next reply other threads:[~2026-11-10 10:47 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-10 10:47 Christian Brauner [this message]
2026-11-10 17:50 ` pr-tracker-bot
-- strict thread matches above, loose matches on Subject: below --
2026-10-30 17:20 Christian Brauner
2026-10-30 23:10 ` pr-tracker-bot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261110-vfs-7.4-rc3.fixes-a971ed79be85@brauner \
--to=brauner@kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®