Hey Linus, This is the batch of pull requests for the v6.18 merge window! This was a pretty usual cycle. Not light, not particularly heavy. There are a few minor filesystem specific changes such as afs and pidfs but nothing that's really worth mentioning. Same goes for iomap and rust. There are some changes around clone3() and copy_process() that lead to some cleanups. There's some workqueue chagnes that affect all of fs but it's not all that exciting and we don't have to care once all the cleanup is done and the semantics for per-cpu and unbounded workqueues are simplified and clarified. There's a pretty interesting writeback series by Jan Kara that fixes a nasty issue causing lockups reported by users when a systemd unit reading lots of files from a filesystem mounted with the lazytime mount option exits. With the lazytime mount option enabled we can be switching many dirty inodes on cgroup exit to the parent cgroup. The numbers observed in practice when a systemd slice of a large cron job exits can easily reach hundreds of thousands or millions. The overall time complexity of switching all the inodes to the correct wb is quadratic leading to workers being pegged for hours consuming 100% of the CPU and switching inodes to the parent wb. That issue should be gone. We also have a series that shrinks struct inode by 16 bytes. This is really something I care about because struct inode in contrast to struct file and struct dentry both of which are meticulously clean by now (I mean, it could alwasy be better, but you know...) struct inode is still a giant dumping ground where everyone is made to pay for features that only 3 filesystems actually end up using. First step, I've moved fscrpt and fsverity pointers out of struct inode and into the individual filesystems that care about this. Hopefully more to come in that area. There's also some preliminary cleanup related to the inode lifetime rework that is currently under way leading to less open-coded accesses to internal inode members and some simplifications for iput_final(). Last but not least there's a bunch of namespace related rework this cycle. This specifically also addresses a complaint you had a few weeks back about ns_alloc_inum(). That's now completely gone and so is the special-casing of the init network namespace initialization. Initialization, reference counting, and cleanup are now unified and statically derived from the namespace type allowing the compiler to catch obvious bugs. The namespace iterator infrastructure I did for the mount namespace some time back is now extended and generalized to cover all other namespace types. As a first step this allows the implemenation of namespace file handles. As with pidfs file handles, namespace file handles are exhaustive, meaning it is not required to actually hold a reference to nsfs to be able to decode aka open_by_handle_at() a namespace file handle. It has the same advantage as pidfs file handles have. It's possible to reliably and for the lifetime of the system refer to a namespace without pinning any resources and to compare them trivially. The namespace file handle layout is exposed as uapi and has a stable and extensible format. The stable format means that userspace may construct its own namespace file handles without going through name_to_handle_at(). Thanks! Christian
Hey Linus, /* Summary */ This contains the usual selections of misc updates for this cycle. Features: - Add "initramfs_options" parameter to set initramfs mount options. This allows to add specific mount options to the rootfs to e.g., limit the memory size. - Add RWF_NOSIGNAL flag for pwritev2() Add RWF_NOSIGNAL flag for pwritev2. This flag prevents the SIGPIPE signal from being raised when writing on disconnected pipes or sockets. The flag is handled directly by the pipe filesystem and converted to the existing MSG_NOSIGNAL flag for sockets. - Allow to pass pid namespace as procfs mount option Ever since the introduction of pid namespaces, procfs has had very implicit behaviour surrounding them (the pidns used by a procfs mount is auto-selected based on the mounting process's active pidns, and the pidns itself is basically hidden once the mount has been constructed). This implicit behaviour has historically meant that userspace was required to do some special dances in order to configure the pidns of a procfs mount as desired. Examples include: * In order to bypass the mnt_too_revealing() check, Kubernetes creates a procfs mount from an empty pidns so that user namespaced containers can be nested (without this, the nested containers would fail to mount procfs). But this requires forking off a helper process because you cannot just one-shot this using mount(2). * Container runtimes in general need to fork into a container before configuring its mounts, which can lead to security issues in the case of shared-pidns containers (a privileged process in the pidns can interact with your container runtime process). While SUID_DUMP_DISABLE and user namespaces make this less of an issue, the strict need for this due to a minor uAPI wart is kind of unfortunate. Things would be much easier if there was a way for userspace to just specify the pidns they want. So this pull request contains changes to implement a new "pidns" argument which can be set using fsconfig(2): fsconfig(procfd, FSCONFIG_SET_FD, "pidns", NULL, nsfd); fsconfig(procfd, FSCONFIG_SET_STRING, "pidns", "/proc/self/ns/pid", 0); or classic mount(2) / mount(8): // mount -t proc -o pidns=/proc/self/ns/pid proc /tmp/proc mount("proc", "/tmp/proc", "proc", MS_..., "pidns=/proc/self/ns/pid"); Cleanups: - Remove the last references to EXPORT_OP_ASYNC_LOCK. - Make file_remove_privs_flags() static. - Remove redundant __GFP_NOWARN when GFP_NOWAIT is used. - Use try_cmpxchg() in start_dir_add(). - Use try_cmpxchg() in sb_init_done_wq(). - Replace offsetof() with struct_size() in ioctl_file_dedupe_range(). - Remove vfs_ioctl() export. - Replace rwlock() with spinlock in epoll code as rwlock causes priority inversion on preempt rt kernels. - Make ns_entries in fs/proc/namespaces const. - Use a switch() statement() in init_special_inode() just like we do in may_open(). - Use struct_size() in dir_add() in the initramfs code. - Use str_plural() in rd_load_image(). - Replace strcpy() with strscpy() in find_link(). - Rename generic_delete_inode() to inode_just_drop() and generic_drop_inode() to inode_generic_drop(). - Remove unused arguments from fcntl_{g,s}et_rw_hint(). Fixes: - Document @name parameter for name_contains_dotdot() helper. - Fix spelling mistake. - Always return zero from replace_fd() instead of the file descriptor number. - Limit the size for copy_file_range() in compat mode to prevent a signed overflow. - Fix debugfs mount options not being applied. - Verify the inode mode when loading it from disk in minixfs. - Verify the inode mode when loading it from disk in cramfs. - Don't trigger automounts with RESOLVE_NO_XDEV If openat2() was called with RESOLVE_NO_XDEV it didn't traverse through automounts, but could still trigger them. - Add FL_RECLAIM flag to show_fl_flags() macro so it appears in tracepoints. - Fix unused variable warning in rd_load_image() on s390. - Make INITRAMFS_PRESERVE_MTIME depend on BLK_DEV_INITRD. - Use ns_capable_noaudit() when determining net sysctl permissions. - Don't call path_put() under namespace semaphore in listmount() and statmount(). /* Testing */ gcc (Debian 14.2.0-19) 14.2.0 Debian clang version 19.1.7 (3+b1) 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 8f5ae30d69d7543eee0d70083daf4de8fe15d585: Linux 6.17-rc1 (2025-08-10 19:41:16 +0300) are available in the Git repository at: git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.18-rc1.misc for you to fetch changes up to 28986dd7e38fb5ba2f180f9eb3ff330798719369: fcntl: trim arguments (2025-09-26 10:21:23 +0200) Please consider pulling these changes from the signed vfs-6.18-rc1.misc tag. Thanks! Christian ---------------------------------------------------------------- vfs-6.18-rc1.misc ---------------------------------------------------------------- Aleksa Sarai (3): pidns: move is-ancestor logic to helper procfs: add "pidns" mount option selftests/proc: add tests for new pidns APIs Askar Safin (4): namei: move cross-device check to traverse_mounts namei: remove LOOKUP_NO_XDEV check from handle_mounts namei: move cross-device check to __traverse_mounts openat2: don't trigger automounts with RESOLVE_NO_XDEV Charalampos Mitrodimas (1): debugfs: fix mount options not being applied Christian Brauner (5): Merge patch series "vfs: if RESOLVE_NO_XDEV passed to openat2, don't *trigger* automounts" Merge patch series "procfs: make reference pidns more user-visible" Merge patch "eventpoll: Fix priority inversion problem" statmount: don't call path_put() under namespace semaphore listmount: don't call path_put() under namespace semaphore Christian Göttsche (1): pid: use ns_capable_noaudit() when determining net sysctl permissions Christoph Hellwig (1): fs: mark file_remove_privs_flags static Geert Uytterhoeven (1): init: INITRAMFS_PRESERVE_MTIME should depend on BLK_DEV_INITRD Greg Kroah-Hartman (1): fs: remove vfs_ioctl export Jeff Layton (1): filelock: add FL_RECLAIM to show_fl_flags() macro Kanchan Joshi (1): fcntl: trim arguments Kriish Sharma (1): fs: document 'name' parameter for name_contains_dotdot() Lauri Vasama (1): Add RWF_NOSIGNAL flag for pwritev2 Lichen Liu (1): fs: Add 'initramfs_options' to set initramfs mount options Mateusz Guzik (2): fs: use the switch statement in init_special_inode() fs: rename generic_delete_inode() and generic_drop_inode() Max Kellermann (1): fs/proc/namespaces: make ns_entries const Miklos Szeredi (1): copy_file_range: limit size if in compat mode Nam Cao (1): eventpoll: Replace rwlock with spinlock Qianfeng Rong (1): fs-writeback: Remove redundant __GFP_NOWARN Tetsuo Handa (3): vfs: show filesystem name at dump_inode() minixfs: Verify inode mode when loading from disk cramfs: Verify inode mode when loading from disk Thiago Becker (1): locks: Remove the last reference to EXPORT_OP_ASYNC_LOCK. Thomas Weißschuh (1): fs: always return zero on success from replace_fd() Thorsten Blum (4): initrd: Fix unused variable warning in rd_load_image() on s390 initramfs: Use struct_size() helper to improve dir_add() initrd: Use str_plural() in rd_load_image() initramfs: Replace strcpy() with strscpy() in find_link() Uros Bizjak (2): fs: Use try_cmpxchg() in start_dir_add() fs: Use try_cmpxchg() in sb_init_done_wq() Xichao Zhao (2): fs: fix "writen"->"written" fs: Replace offsetof() with struct_size() in ioctl_file_dedupe_range() Documentation/admin-guide/kernel-parameters.txt | 3 + Documentation/filesystems/porting.rst | 4 +- Documentation/filesystems/proc.rst | 8 + Documentation/filesystems/vfs.rst | 4 +- block/bdev.c | 2 +- drivers/dax/super.c | 2 +- drivers/misc/ibmasm/ibmasmfs.c | 2 +- drivers/usb/gadget/function/f_fs.c | 2 +- drivers/usb/gadget/legacy/inode.c | 2 +- fs/9p/vfs_super.c | 2 +- fs/afs/inode.c | 4 +- fs/btrfs/inode.c | 2 +- fs/ceph/super.c | 2 +- fs/configfs/mount.c | 2 +- fs/cramfs/inode.c | 11 +- fs/dcache.c | 4 +- fs/debugfs/inode.c | 11 +- fs/efivarfs/super.c | 2 +- fs/eventpoll.c | 139 +++------------- fs/ext4/super.c | 2 +- fs/f2fs/super.c | 2 +- fs/fcntl.c | 10 +- fs/file.c | 5 +- fs/fs-writeback.c | 2 +- fs/fuse/inode.c | 2 +- fs/gfs2/super.c | 2 +- fs/hostfs/hostfs_kern.c | 2 +- fs/inode.c | 30 ++-- fs/ioctl.c | 5 +- fs/kernfs/mount.c | 2 +- fs/locks.c | 4 +- fs/minix/inode.c | 8 +- fs/namei.c | 22 ++- fs/namespace.c | 106 ++++++++---- fs/nfs/inode.c | 2 +- fs/ocfs2/dlmfs/dlmfs.c | 2 +- fs/orangefs/super.c | 2 +- fs/overlayfs/super.c | 2 +- fs/pidfs.c | 2 +- fs/pipe.c | 6 +- fs/proc/inode.c | 2 +- fs/proc/namespaces.c | 6 +- fs/proc/root.c | 98 ++++++++++- fs/pstore/inode.c | 2 +- fs/ramfs/inode.c | 2 +- fs/read_write.c | 14 +- fs/smb/client/cifsfs.c | 2 +- fs/super.c | 8 +- fs/ubifs/super.c | 2 +- fs/xfs/xfs_super.c | 2 +- include/linux/fs.h | 10 +- include/linux/pid_namespace.h | 9 + include/trace/events/filelock.h | 3 +- include/uapi/linux/fs.h | 5 +- init/Kconfig | 1 + init/do_mounts_rd.c | 14 +- init/initramfs.c | 5 +- kernel/bpf/inode.c | 2 +- kernel/pid.c | 2 +- kernel/pid_namespace.c | 22 ++- mm/shmem.c | 2 +- net/socket.c | 3 + tools/testing/selftests/proc/.gitignore | 1 + tools/testing/selftests/proc/Makefile | 1 + tools/testing/selftests/proc/proc-pidns.c | 211 ++++++++++++++++++++++++ 65 files changed, 592 insertions(+), 265 deletions(-) create mode 100644 tools/testing/selftests/proc/proc-pidns.c
The pull request you sent on Fri, 26 Sep 2025 16:18:55 +0200: > git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.18-rc1.misc has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/b7ce6fa90fd9554482847b19756a06232c1dc78c Thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/prtracker.html
On Fri, Sep 26, 2025 at 04:18:55PM +0200, Christian Brauner wrote: > Hey Linus, > > /* Summary */ > This contains the usual selections of misc updates for this cycle. > > Features: > > - Add "initramfs_options" parameter to set initramfs mount options. This > allows to add specific mount options to the rootfs to e.g., limit the > memory size. > > - Add RWF_NOSIGNAL flag for pwritev2() > > Add RWF_NOSIGNAL flag for pwritev2. This flag prevents the SIGPIPE > signal from being raised when writing on disconnected pipes or > sockets. The flag is handled directly by the pipe filesystem and > converted to the existing MSG_NOSIGNAL flag for sockets. > > - Allow to pass pid namespace as procfs mount option > > Ever since the introduction of pid namespaces, procfs has had very > implicit behaviour surrounding them (the pidns used by a procfs mount > is auto-selected based on the mounting process's active pidns, and the > pidns itself is basically hidden once the mount has been constructed). > > This implicit behaviour has historically meant that userspace was > required to do some special dances in order to configure the pidns of > a procfs mount as desired. Examples include: > > * In order to bypass the mnt_too_revealing() check, Kubernetes creates > a procfs mount from an empty pidns so that user namespaced > containers can be nested (without this, the nested containers would > fail to mount procfs). But this requires forking off a helper > process because you cannot just one-shot this using mount(2). > > * Container runtimes in general need to fork into a container before > configuring its mounts, which can lead to security issues in the > case of shared-pidns containers (a privileged process in the pidns > can interact with your container runtime process). > While SUID_DUMP_DISABLE and user namespaces make this less of an > issue, the strict need for this due to a minor uAPI wart is kind of > unfortunate. > > Things would be much easier if there was a way for userspace to just > specify the pidns they want. So this pull request contains changes > to implement a new "pidns" argument which can be set using > fsconfig(2): > > fsconfig(procfd, FSCONFIG_SET_FD, "pidns", NULL, nsfd); > fsconfig(procfd, FSCONFIG_SET_STRING, "pidns", "/proc/self/ns/pid", 0); > > or classic mount(2) / mount(8): > > // mount -t proc -o pidns=/proc/self/ns/pid proc /tmp/proc > mount("proc", "/tmp/proc", "proc", MS_..., "pidns=/proc/self/ns/pid"); > > Cleanups: > > - Remove the last references to EXPORT_OP_ASYNC_LOCK. > > - Make file_remove_privs_flags() static. > > - Remove redundant __GFP_NOWARN when GFP_NOWAIT is used. > > - Use try_cmpxchg() in start_dir_add(). > > - Use try_cmpxchg() in sb_init_done_wq(). > > - Replace offsetof() with struct_size() in ioctl_file_dedupe_range(). > > - Remove vfs_ioctl() export. > > - Replace rwlock() with spinlock in epoll code as rwlock causes priority > inversion on preempt rt kernels. > > - Make ns_entries in fs/proc/namespaces const. > > - Use a switch() statement() in init_special_inode() just like we do in > may_open(). > > - Use struct_size() in dir_add() in the initramfs code. > > - Use str_plural() in rd_load_image(). > > - Replace strcpy() with strscpy() in find_link(). > > - Rename generic_delete_inode() to inode_just_drop() and > generic_drop_inode() to inode_generic_drop(). > > - Remove unused arguments from fcntl_{g,s}et_rw_hint(). > > Fixes: > > - Document @name parameter for name_contains_dotdot() helper. > > - Fix spelling mistake. > > - Always return zero from replace_fd() instead of the file descriptor number. > > - Limit the size for copy_file_range() in compat mode to prevent a signed > overflow. > > - Fix debugfs mount options not being applied. > > - Verify the inode mode when loading it from disk in minixfs. > > - Verify the inode mode when loading it from disk in cramfs. > > - Don't trigger automounts with RESOLVE_NO_XDEV > > If openat2() was called with RESOLVE_NO_XDEV it didn't traverse > through automounts, but could still trigger them. > > - Add FL_RECLAIM flag to show_fl_flags() macro so it appears in tracepoints. > > - Fix unused variable warning in rd_load_image() on s390. > > - Make INITRAMFS_PRESERVE_MTIME depend on BLK_DEV_INITRD. > > - Use ns_capable_noaudit() when determining net sysctl permissions. > > - Don't call path_put() under namespace semaphore in listmount() and statmount(). > > /* Testing */ > > gcc (Debian 14.2.0-19) 14.2.0 > Debian clang version 19.1.7 (3+b1) > > No build failures or warnings were observed. > > /* Conflicts */ There is one issue that was reported after I had generated the pull request. The mnt_ns_release() function can be passed a NULL pointer and that case needs to be handled. I'm appending a patch that I would ask you to please just apply on top of it. If you rather want me resend the pull request please just tell me!
Hey Linus, /* Summary */ This contains some work around mount api handling: * Output the warning message for mnt_too_revealing() triggered during fsmount() to the fscontext log. This makes it possible for the mount tool to output appropriate warnings on the command line. For example, with the newest fsopen()-based mount(8) from util-linux, the error messages now look like: # mount -t proc proc /tmp mount: /tmp: fsmount() failed: VFS: Mount too revealing. dmesg(1) may have more information after failed mount system call. * Do not consume fscontext log entries when returning -EMSGSIZE Userspace generally expects APIs that return -EMSGSIZE to allow for them to adjust their buffer size and retry the operation. However, the fscontext log would previously clear the message even in the -EMSGSIZE case. Given that it is very cheap for us to check whether the buffer is too small before we remove the message from the ring buffer, let's just do that instead. * Drop an unused argument from do_remount(). /* Testing */ gcc (Debian 14.2.0-19) 14.2.0 Debian clang version 19.1.7 (3+b1) No build failures or warnings were observed. /* Conflicts */ Merge conflicts with mainline ============================= No known conflicts. Merge conflicts with other trees ================================ [1] https://lore.kernel.org/linux-next/aNO0BKAXphoFEgUk@finisterre.sirena.org.uk The following changes since commit 8f5ae30d69d7543eee0d70083daf4de8fe15d585: Linux 6.17-rc1 (2025-08-10 19:41:16 +0300) are available in the Git repository at: git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.18-rc1.mount for you to fetch changes up to 1e5f0fb41fccf5ecbb5506551790335c9578e320: vfs: fs/namespace.c: remove ms_flags argument from do_remount (2025-08-11 16:08:31 +0200) Please consider pulling these changes from the signed vfs-6.18-rc1.mount tag. Thanks! Christian ---------------------------------------------------------------- vfs-6.18-rc1.mount ---------------------------------------------------------------- Aleksa Sarai (4): fscontext: add custom-prefix log helpers vfs: output mount_too_revealing() errors to fscontext fscontext: do not consume log entries when returning -EMSGSIZE selftests/filesystems: add basic fscontext log tests Askar Safin (1): vfs: fs/namespace.c: remove ms_flags argument from do_remount Christian Brauner (3): Merge patch series "fs: Remove old mount API helpers" Merge patch series "vfs: output mount_too_revealing() errors to fscontext" Merge patch series "fscontext: do not consume log entries when returning -EMSGSIZE" Pedro Falcato (3): fs: Remove mount_nodev fs: Remove mount_bdev docs/vfs: Remove mentions to the old mount API helpers Documentation/filesystems/vfs.rst | 27 +---- fs/fsopen.c | 70 +++++++------ fs/namespace.c | 10 +- fs/super.c | 63 ------------ include/linux/fs.h | 6 -- include/linux/fs_context.h | 18 +++- tools/testing/selftests/filesystems/.gitignore | 1 + tools/testing/selftests/filesystems/Makefile | 2 +- tools/testing/selftests/filesystems/fclog.c | 130 +++++++++++++++++++++++++ 9 files changed, 192 insertions(+), 135 deletions(-) create mode 100644 tools/testing/selftests/filesystems/fclog.c
The pull request you sent on Fri, 26 Sep 2025 16:18:56 +0200: > git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.18-rc1.mount has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/3a2a5b278fb8d4cdb3154b8e4a38352b945f96fd Thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/prtracker.html
Hey Linus, /* Summary */ This contains a series I originally wrote and that Eric brought over the finish line. It moves out the i_crypt_info and i_verity_info pointers out of 'struct inode' and into the fs-specific part of the inode. So now the few filesytems that actually make use of this pay the price in their own private inode storage instead of forcing it upon every user of struct inode. The pointer for the crypt and verity info is simply found by storing an offset to its address in struct fsverity_operations and struct fscrypt_operations. This shrinks struct inode by 16 bytes. I hope to move a lot more out of it in the future so that struct inode becomes really just about very core stuff that we need, much like struct dentry and struct file, instead of the dumping ground it has become over the years. On top of this are a various changes associated with the ongoing inode lifetime handling rework that multiple people are pushing forward: * Stop accessing inode->i_count directly in f2fs and gfs2. They simply should use the __iget() and iput() helpers. * Make the i_state flags an enum. * Rework the iput() logic Currently, if we are the last iput, and we have the I_DIRTY_TIME bit set, we will grab a reference on the inode again and then mark it dirty and then redo the put. This is to make sure we delay the time update for as long as possible. We can rework this logic to simply dec i_count if it is not 1, and if it is do the time update while still holding the i_count reference. Then we can replace the atomic_dec_and_lock with locking the ->i_lock and doing atomic_dec_and_test, since we did the atomic_add_unless above. * Add an icount_read() helper and convert everyone that accesses inode->i_count directly for this purpose to use the helper. * Expand dump_inode() to dump more information about an inode helping in debugging. * Add some might_sleep() annotations to iput() and associated helpers. /* Testing */ gcc (Debian 14.2.0-19) 14.2.0 Debian clang version 19.1.7 (3+b1) No build failures or warnings were observed. /* Conflicts */ Merge conflicts with mainline ============================= No known conflicts. Merge conflicts with other trees ================================ [1] This will have a merge conflict with the vfs-6.18-rc1.misc pull request. The conflict resolution is to simply use exactly what the tag here brings in. The following changes since commit 8f5ae30d69d7543eee0d70083daf4de8fe15d585: Linux 6.17-rc1 (2025-08-10 19:41:16 +0300) are available in the Git repository at: git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.18-rc1.inode for you to fetch changes up to c3c616c53dbabddf32a0485bd133d8d3b9f6656a: Merge branch 'vfs-6.18.inode.refcount.preliminaries' (2025-09-19 16:46:02 +0200) Please consider pulling these changes from the signed vfs-6.18-rc1.inode tag. Thanks! Christian ---------------------------------------------------------------- vfs-6.18-rc1.inode ---------------------------------------------------------------- Christian Brauner (3): Merge patch series "Move fscrypt and fsverity info out of struct inode" inode: fix whitespace issues Merge branch 'vfs-6.18.inode.refcount.preliminaries' Eric Biggers (13): fscrypt: replace raw loads of info pointer with helper function fscrypt: add support for info in fs-specific part of inode ext4: move crypt info pointer to fs-specific part of inode f2fs: move crypt info pointer to fs-specific part of inode ubifs: move crypt info pointer to fs-specific part of inode ceph: move crypt info pointer to fs-specific part of inode fs: remove inode::i_crypt_info fsverity: add support for info in fs-specific part of inode ext4: move verity info pointer to fs-specific part of inode f2fs: move verity info pointer to fs-specific part of inode btrfs: move verity info pointer to fs-specific part of inode fs: remove inode::i_verity_info fsverity: check IS_VERITY() in fsverity_cleanup_inode() Josef Bacik (4): fs: stop accessing ->i_count directly in f2fs and gfs2 fs: make the i_state flags an enum fs: rework iput logic fs: add an icount_read helper Mateusz Guzik (1): fs: expand dump_inode() Max Kellermann (1): fs: add might_sleep() annotation to iput() and more arch/powerpc/platforms/cell/spufs/file.c | 2 +- fs/btrfs/btrfs_inode.h | 5 + fs/btrfs/inode.c | 5 +- fs/btrfs/verity.c | 2 + fs/ceph/crypto.c | 2 + fs/ceph/inode.c | 1 + fs/ceph/mds_client.c | 2 +- fs/ceph/super.h | 1 + fs/crypto/bio.c | 2 +- fs/crypto/crypto.c | 14 +- fs/crypto/fname.c | 11 +- fs/crypto/fscrypt_private.h | 4 +- fs/crypto/hooks.c | 2 +- fs/crypto/inline_crypt.c | 12 +- fs/crypto/keysetup.c | 43 +++--- fs/crypto/policy.c | 7 +- fs/ext4/crypto.c | 2 + fs/ext4/ext4.h | 8 + fs/ext4/ialloc.c | 4 +- fs/ext4/super.c | 6 + fs/ext4/verity.c | 2 + fs/f2fs/f2fs.h | 6 + fs/f2fs/super.c | 14 +- fs/f2fs/verity.c | 2 + fs/fs-writeback.c | 2 +- fs/gfs2/ops_fstype.c | 2 +- fs/hpfs/inode.c | 2 +- fs/inode.c | 90 ++++++++--- fs/nfs/inode.c | 4 +- fs/notify/fsnotify.c | 2 +- fs/smb/client/inode.c | 2 +- fs/ubifs/crypto.c | 2 + fs/ubifs/super.c | 2 +- fs/ubifs/ubifs.h | 4 + fs/verity/enable.c | 6 +- fs/verity/fsverity_private.h | 9 +- fs/verity/open.c | 23 +-- fs/verity/verify.c | 2 +- fs/xfs/xfs_inode.c | 2 +- fs/xfs/xfs_trace.h | 2 +- include/linux/fs.h | 246 ++++++++++++++++--------------- include/linux/fscrypt.h | 40 ++++- include/linux/fsverity.h | 57 +++++-- include/trace/events/filelock.h | 2 +- security/landlock/fs.c | 2 +- 45 files changed, 428 insertions(+), 234 deletions(-)
The pull request you sent on Fri, 26 Sep 2025 16:18:57 +0200: > git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.18-rc1.inode has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/56e7b310717697109998966cb3c4d3e490d09200 Thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/prtracker.html
Hey Linus, /* Summary */ This contains minor fixes and cleanups to the iomap code. Nothing really stands out here. /* Testing */ gcc (Debian 14.2.0-19) 14.2.0 Debian clang version 19.1.7 (3+b1) 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 8f5ae30d69d7543eee0d70083daf4de8fe15d585: Linux 6.17-rc1 (2025-08-10 19:41:16 +0300) are available in the Git repository at: git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.18-rc1.iomap for you to fetch changes up to c59c965292f75e39cc4cfefb50d56d4b1900812e: Merge patch series "iomap: cleanups ahead of adding fuse support" (2025-09-19 14:17:16 +0200) Please consider pulling these changes from the signed vfs-6.18-rc1.iomap tag. Thanks! Christian ---------------------------------------------------------------- vfs-6.18-rc1.iomap ---------------------------------------------------------------- Christian Brauner (1): Merge patch series "iomap: cleanups ahead of adding fuse support" Darrick J. Wong (2): iomap: trace iomap_zero_iter zeroing activities iomap: error out on file IO when there is no inline_data buffer fs/iomap/buffered-io.c | 18 +++++++++++++----- fs/iomap/direct-io.c | 3 +++ fs/iomap/trace.h | 1 + 3 files changed, 17 insertions(+), 5 deletions(-)
The pull request you sent on Fri, 26 Sep 2025 16:18:58 +0200: > git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.18-rc1.iomap has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/029a4eb589129450f2735df825f784dd7e8c4c63 Thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/prtracker.html
Hey Linus, /* Summary */ This just contains a few changes to pid_nr_ns() to make it more robust and cleanups or improves a few users that ab- or misuse it currently. /* Testing */ gcc (Debian 14.2.0-19) 14.2.0 Debian clang version 19.1.7 (3+b1) 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 8f5ae30d69d7543eee0d70083daf4de8fe15d585: Linux 6.17-rc1 (2025-08-10 19:41:16 +0300) are available in the Git repository at: git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.18-rc1.pidfs for you to fetch changes up to da664c6db895f70c2be8c3dd371c273b6f8b920f: Merge patch series "Improve pid_nr_ns()" (2025-08-19 13:38:26 +0200) Please consider pulling these changes from the signed vfs-6.18-rc1.pidfs tag. Thanks! Christian ---------------------------------------------------------------- vfs-6.18-rc1.pidfs ---------------------------------------------------------------- Christian Brauner (1): Merge patch series "Improve pid_nr_ns()" Oleg Nesterov (3): pid: make __task_pid_nr_ns(ns => NULL) safe for zombie callers pid: change bacct_add_tsk() to use task_ppid_nr_ns() pid: change task_state() to use task_ppid_nr_ns() gaoxiang17 (1): pid: Add a judgment for ns null in pid_nr_ns fs/proc/array.c | 4 +--- kernel/pid.c | 5 +++-- kernel/tsacct.c | 3 +-- 3 files changed, 5 insertions(+), 7 deletions(-)
On 09/26, Christian Brauner wrote: > > Oleg Nesterov (3): > pid: make __task_pid_nr_ns(ns => NULL) safe for zombie callers ... > gaoxiang17 (1): > pid: Add a judgment for ns null in pid_nr_ns Oh... I already tried to complain twice https://lore.kernel.org/all/20250819142557.GA11345@redhat.com/ https://lore.kernel.org/all/20250901153054.GA5587@redhat.com/ One of these patches should be reverted. It doesn't really hurt, but it makes no sense to check ns != NULL twice. Oleg.
The pull request you sent on Fri, 26 Sep 2025 16:18:59 +0200: > git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.18-rc1.pidfs has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/e571372101522fa91735dac6d30a160b2abe600c Thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/prtracker.html
Hey Linus, /* Summary */ This contains a few minor vfs rust changes: * Add the pid namespace Rust wrappers to the correct MAINTAINERS entry. * Use to_result() in the Rust file error handling code. * Update imports for fs and pid_namespce Rust wrappers. /* Testing */ gcc (Debian 14.2.0-19) 14.2.0 Debian clang version 19.1.7 (3+b1) 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 8f5ae30d69d7543eee0d70083daf4de8fe15d585: Linux 6.17-rc1 (2025-08-10 19:41:16 +0300) are available in the Git repository at: git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.18-rc1.rust for you to fetch changes up to c37adf34a5dc511e017b5a3bab15fe3171269e46: rust: file: use to_result for error handling (2025-09-01 13:55:22 +0200) Please consider pulling these changes from the signed vfs-6.18-rc1.rust tag. Thanks! Christian ---------------------------------------------------------------- vfs-6.18-rc1.rust ---------------------------------------------------------------- Alice Ryhl (1): pid: add Rust files to MAINTAINERS Onur Özkan (1): rust: file: use to_result for error handling Shankari Anand (2): rust: pid_namespace: update AlwaysRefCounted imports from sync::aref rust: fs: update ARef and AlwaysRefCounted imports from sync::aref MAINTAINERS | 1 + rust/kernel/fs/file.rs | 10 +++++----- rust/kernel/pid_namespace.rs | 5 +---- 3 files changed, 7 insertions(+), 9 deletions(-)
The pull request you sent on Fri, 26 Sep 2025 16:19:00 +0200: > git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.18-rc1.rust has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/df897265c0c6fc4b758b07f3a756e96b6f2ab81f Thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/prtracker.html
Hey Linus, /* Summary */ This contains various workqueue changes affecting the filesystem layer. Currently if a user enqueue a work item using schedule_delayed_work() the used wq is "system_wq" (per-cpu wq) while queue_delayed_work() use WORK_CPU_UNBOUND (used when a cpu is not specified). The same applies to schedule_work() that is using system_wq and queue_work(), that makes use again of WORK_CPU_UNBOUND. This replaces the use of system_wq and system_unbound_wq. system_wq is a per-CPU workqueue which isn't very obvious from the name and system_unbound_wq is to be used when locality is not required. So this renames system_wq to system_percpu_wq, and system_unbound_wq to system_dfl_wq. This also adds a new WQ_PERCPU flag to allow the fs subsystem users to explicitly request the use of per-CPU behavior. Both WQ_UNBOUND and WQ_PERCPU flags coexist for one release cycle to allow callers to transition their calls. WQ_UNBOUND will be removed in a next release cycle. /* Testing */ gcc (Debian 14.2.0-19) 14.2.0 Debian clang version 19.1.7 (3+b1) No build failures or warnings were observed. /* Conflicts */ Merge conflicts with mainline ============================= No known conflicts. Merge conflicts with other trees ================================ [1] https://lore.kernel.org/linux-next/aNEKzrMMxLAVHGIn@finisterre.sirena.org.uk This will have a merge conflict with changes in the quota tree. Steven's proposed resolution is correct. No known conflicts. The following changes since commit 8f5ae30d69d7543eee0d70083daf4de8fe15d585: Linux 6.17-rc1 (2025-08-10 19:41:16 +0300) are available in the Git repository at: git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.18-rc1.workqueue for you to fetch changes up to 56ce6c8b11a95c65764e27cb6021b1e98ccc4212: Merge patch series "fs: replace wq users and add WQ_PERCPU to alloc_workqueue() users" (2025-09-19 16:15:12 +0200) Please consider pulling these changes from the signed vfs-6.18-rc1.workqueue tag. Thanks! Christian ---------------------------------------------------------------- vfs-6.18-rc1.workqueue ---------------------------------------------------------------- Christian Brauner (1): Merge patch series "fs: replace wq users and add WQ_PERCPU to alloc_workqueue() users" Marco Crivellari (3): fs: replace use of system_unbound_wq with system_dfl_wq fs: replace use of system_wq with system_percpu_wq fs: WQ_PERCPU added to alloc_workqueue users fs/afs/callback.c | 4 ++-- fs/afs/main.c | 4 ++-- fs/afs/write.c | 2 +- fs/aio.c | 2 +- fs/bcachefs/btree_write_buffer.c | 2 +- fs/bcachefs/io_read.c | 8 ++++---- fs/bcachefs/journal_io.c | 2 +- fs/bcachefs/super.c | 10 +++++----- fs/btrfs/block-group.c | 2 +- fs/btrfs/disk-io.c | 2 +- fs/btrfs/extent_map.c | 2 +- fs/btrfs/space-info.c | 4 ++-- fs/btrfs/zoned.c | 2 +- fs/ceph/super.c | 2 +- fs/coredump.c | 2 +- fs/dlm/lowcomms.c | 2 +- fs/dlm/main.c | 2 +- fs/ext4/mballoc.c | 2 +- fs/fs-writeback.c | 4 ++-- fs/fuse/dev.c | 2 +- fs/fuse/inode.c | 2 +- fs/gfs2/main.c | 5 +++-- fs/gfs2/ops_fstype.c | 6 ++++-- fs/netfs/misc.c | 2 +- fs/netfs/objects.c | 2 +- fs/nfs/namespace.c | 2 +- fs/nfs/nfs4renewd.c | 2 +- fs/nfsd/filecache.c | 2 +- fs/notify/mark.c | 4 ++-- fs/ocfs2/dlm/dlmdomain.c | 3 ++- fs/ocfs2/dlmfs/dlmfs.c | 3 ++- fs/quota/dquot.c | 2 +- fs/smb/client/cifsfs.c | 16 +++++++++++----- fs/smb/server/ksmbd_work.c | 2 +- fs/smb/server/transport_rdma.c | 3 ++- fs/super.c | 3 ++- fs/verity/verify.c | 2 +- fs/xfs/xfs_log.c | 3 +-- fs/xfs/xfs_mru_cache.c | 3 ++- fs/xfs/xfs_super.c | 15 ++++++++------- 40 files changed, 79 insertions(+), 65 deletions(-)
The pull request you sent on Fri, 26 Sep 2025 16:19:01 +0200: > git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.18-rc1.workqueue has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/b786405685087912601e24d94c1670523c829137 Thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/prtracker.html
Hey Linus, /* Testing */ This contains the changes to enable support for clone3() on nios2 which apparently is still a thing. The more exciting part of this is that it cleans up the inconsistency in how the 64-bit flag argument is passed from copy_process() into the various other copy_*() helpers. gcc (Debian 14.2.0-19) 14.2.0 Debian clang version 19.1.7 (3+b1) 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 8f5ae30d69d7543eee0d70083daf4de8fe15d585: Linux 6.17-rc1 (2025-08-10 19:41:16 +0300) are available in the Git repository at: git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/kernel-6.18-rc1.clone3 for you to fetch changes up to 76cea30ad520238160bf8f5e2f2803fcd7a08d22: Merge patch series "nios2: Add architecture support for clone3" (2025-09-01 15:31:40 +0200) Please consider pulling these changes from the signed kernel-6.18-rc1.clone3 tag. Thanks! Christian ---------------------------------------------------------------- kernel-6.18-rc1.clone3 ---------------------------------------------------------------- Christian Brauner (1): Merge patch series "nios2: Add architecture support for clone3" Simon Schuster (4): copy_sighand: Handle architectures where sizeof(unsigned long) < sizeof(u64) copy_process: pass clone_flags as u64 across calltree arch: copy_thread: pass clone_flags as u64 nios2: implement architecture-specific portion of sys_clone3 arch/alpha/kernel/process.c | 2 +- arch/arc/kernel/process.c | 2 +- arch/arm/kernel/process.c | 2 +- arch/arm64/kernel/process.c | 2 +- arch/csky/kernel/process.c | 2 +- arch/hexagon/kernel/process.c | 2 +- arch/loongarch/kernel/process.c | 2 +- arch/m68k/kernel/process.c | 2 +- arch/microblaze/kernel/process.c | 2 +- arch/mips/kernel/process.c | 2 +- arch/nios2/include/asm/syscalls.h | 1 + arch/nios2/include/asm/unistd.h | 2 -- arch/nios2/kernel/entry.S | 6 ++++++ arch/nios2/kernel/process.c | 2 +- arch/nios2/kernel/syscall_table.c | 1 + arch/openrisc/kernel/process.c | 2 +- arch/parisc/kernel/process.c | 2 +- arch/powerpc/kernel/process.c | 2 +- arch/riscv/kernel/process.c | 2 +- arch/s390/kernel/process.c | 2 +- arch/sh/kernel/process_32.c | 2 +- arch/sparc/kernel/process_32.c | 2 +- arch/sparc/kernel/process_64.c | 2 +- arch/um/kernel/process.c | 2 +- arch/x86/include/asm/fpu/sched.h | 2 +- arch/x86/include/asm/shstk.h | 4 ++-- arch/x86/kernel/fpu/core.c | 2 +- arch/x86/kernel/process.c | 2 +- arch/x86/kernel/shstk.c | 2 +- arch/xtensa/kernel/process.c | 2 +- block/blk-ioc.c | 2 +- fs/namespace.c | 2 +- include/linux/cgroup.h | 4 ++-- include/linux/cred.h | 2 +- include/linux/iocontext.h | 6 +++--- include/linux/ipc_namespace.h | 4 ++-- include/linux/lsm_hook_defs.h | 2 +- include/linux/mnt_namespace.h | 2 +- include/linux/nsproxy.h | 2 +- include/linux/pid_namespace.h | 4 ++-- include/linux/rseq.h | 4 ++-- include/linux/sched/task.h | 2 +- include/linux/security.h | 4 ++-- include/linux/sem.h | 4 ++-- include/linux/time_namespace.h | 4 ++-- include/linux/uprobes.h | 4 ++-- include/linux/user_events.h | 4 ++-- include/linux/utsname.h | 4 ++-- include/net/net_namespace.h | 4 ++-- include/trace/events/task.h | 6 +++--- ipc/namespace.c | 2 +- ipc/sem.c | 2 +- kernel/cgroup/namespace.c | 2 +- kernel/cred.c | 2 +- kernel/events/uprobes.c | 2 +- kernel/fork.c | 10 +++++----- kernel/nsproxy.c | 4 ++-- kernel/pid_namespace.c | 2 +- kernel/sched/core.c | 4 ++-- kernel/sched/fair.c | 2 +- kernel/sched/sched.h | 4 ++-- kernel/time/namespace.c | 2 +- kernel/utsname.c | 2 +- net/core/net_namespace.c | 2 +- security/apparmor/lsm.c | 2 +- security/security.c | 2 +- security/selinux/hooks.c | 2 +- security/tomoyo/tomoyo.c | 2 +- 68 files changed, 95 insertions(+), 89 deletions(-)
The pull request you sent on Fri, 26 Sep 2025 16:19:02 +0200: > git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/kernel-6.18-rc1.clone3 has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/722df25ddf4f13e303dcc4cd65b3df5b197a79e6 Thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/prtracker.html
On Fri, Sep 26, 2025 at 04:19:02PM +0200, Christian Brauner wrote: >Hey Linus, > >/* Testing */ >This contains the changes to enable support for clone3() on nios2 which >apparently is still a thing. The more exciting part of this is that it >cleans up the inconsistency in how the 64-bit flag argument is passed >from copy_process() into the various other copy_*() helpers. > >gcc (Debian 14.2.0-19) 14.2.0 >Debian clang version 19.1.7 (3+b1) > >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 8f5ae30d69d7543eee0d70083daf4de8fe15d585: > > Linux 6.17-rc1 (2025-08-10 19:41:16 +0300) > >are available in the Git repository at: > > git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/kernel-6.18-rc1.clone3 Hi Christian, After pulling this tag, I started seeing a build failure. a9769a5b9878 ("rv: Add support for LTL monitors") which was merged a few weeks ago added a usage of task_newtask: static void handle_task_newtask(void *data, struct task_struct *task, unsigned long flags) But commit edd3cb05c00a ("copy_process: pass clone_flags as u64 across calltree") from this pull request modified the signature without updating rv. ./include/rv/ltl_monitor.h: In function ‘ltl_monitor_init’: ./include/rv/ltl_monitor.h:75:51: error: passing argument 1 of ‘check_trace_callback_type_task_newtask’ from incompatible pointer type [-Wincompatible-pointer-types] 75 | rv_attach_trace_probe(name, task_newtask, handle_task_newtask); | ^~~~~~~~~~~~~~~~~~~ | | | void (*)(void *, struct task_struct *, long unsigned int) ./include/rv/instrumentation.h:18:48: note: in definition of macro ‘rv_attach_trace_probe’ 18 | check_trace_callback_type_##tp(rv_handler); \ | ^~~~~~~~~~ I've fixed it up by simply: diff --git a/include/rv/ltl_monitor.h b/include/rv/ltl_monitor.h index 67031a774e3d3..5368cf5fd623e 100644 --- a/include/rv/ltl_monitor.h +++ b/include/rv/ltl_monitor.h @@ -56,7 +56,7 @@ static void ltl_task_init(struct task_struct *task, bool task_creation) ltl_atoms_fetch(task, mon); } -static void handle_task_newtask(void *data, struct task_struct *task, unsigned long flags) +static void handle_task_newtask(void *data, struct task_struct *task, u64 flags) { ltl_task_init(task, true); } -- Thanks, Sasha
On Sat, Sep 27, 2025 at 08:19:12AM -0400, Sasha Levin wrote: > On Fri, Sep 26, 2025 at 04:19:02PM +0200, Christian Brauner wrote: > > Hey Linus, > > > > /* Testing */ > > This contains the changes to enable support for clone3() on nios2 which > > apparently is still a thing. The more exciting part of this is that it > > cleans up the inconsistency in how the 64-bit flag argument is passed > > from copy_process() into the various other copy_*() helpers. > > > > gcc (Debian 14.2.0-19) 14.2.0 > > Debian clang version 19.1.7 (3+b1) > > > > 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 8f5ae30d69d7543eee0d70083daf4de8fe15d585: > > > > Linux 6.17-rc1 (2025-08-10 19:41:16 +0300) > > > > are available in the Git repository at: > > > > git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/kernel-6.18-rc1.clone3 > > Hi Christian, > > After pulling this tag, I started seeing a build failure. > > a9769a5b9878 ("rv: Add support for LTL monitors") which was merged a few weeks > ago added a usage of task_newtask: > > static void handle_task_newtask(void *data, struct task_struct *task, unsigned long flags) > > But commit edd3cb05c00a ("copy_process: pass clone_flags as u64 across > calltree") from this pull request modified the signature without updating rv. > > ./include/rv/ltl_monitor.h: In function ‘ltl_monitor_init’: > ./include/rv/ltl_monitor.h:75:51: error: passing argument 1 of ‘check_trace_callback_type_task_newtask’ from incompatible pointer type [-Wincompatible-pointer-types] > 75 | rv_attach_trace_probe(name, task_newtask, handle_task_newtask); > | ^~~~~~~~~~~~~~~~~~~ > | | > | void (*)(void *, struct task_struct *, long unsigned int) > ./include/rv/instrumentation.h:18:48: note: in definition of macro ‘rv_attach_trace_probe’ > 18 | check_trace_callback_type_##tp(rv_handler); \ > | ^~~~~~~~~~ > > I've fixed it up by simply: > > diff --git a/include/rv/ltl_monitor.h b/include/rv/ltl_monitor.h > index 67031a774e3d3..5368cf5fd623e 100644 > --- a/include/rv/ltl_monitor.h > +++ b/include/rv/ltl_monitor.h > @@ -56,7 +56,7 @@ static void ltl_task_init(struct task_struct *task, bool task_creation) > ltl_atoms_fetch(task, mon); > } > -static void handle_task_newtask(void *data, struct task_struct *task, unsigned long flags) > +static void handle_task_newtask(void *data, struct task_struct *task, u64 flags) > { > ltl_task_init(task, true); > } Hm, thanks! That is only in -next, I guess. I probably didn't catch this because I didn't have CONFIG_RV_REACTORS turn on (whatever that is). @Linus please let me know if you want me to resend this pull request or if you just want to apply this fixup directly. Thank you! Christian
Hey Linus, /* Summary */ This contains the change to enable afs to support RENAME_NOREPLACE and RENAME_EXCHANGE if the server supports it. /* Testing */ gcc (Debian 14.2.0-19) 14.2.0 Debian clang version 19.1.7 (3+b1) 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 8f5ae30d69d7543eee0d70083daf4de8fe15d585: Linux 6.17-rc1 (2025-08-10 19:41:16 +0300) are available in the Git repository at: git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.18-rc1.afs for you to fetch changes up to a19239ba14525c26ad097d59fd52cd9198b5bcdb: afs: Add support for RENAME_NOREPLACE and RENAME_EXCHANGE (2025-09-25 09:19:07 +0200) Please consider pulling these changes from the signed vfs-6.18-rc1.afs tag. Thanks! Christian ---------------------------------------------------------------- vfs-6.18-rc1.afs ---------------------------------------------------------------- David Howells (1): afs: Add support for RENAME_NOREPLACE and RENAME_EXCHANGE fs/afs/dir.c | 223 +++++++++++++++++++++++++++++++--------- fs/afs/dir_edit.c | 18 ++-- fs/afs/dir_silly.c | 11 ++ fs/afs/internal.h | 15 ++- fs/afs/misc.c | 1 + fs/afs/protocol_yfs.h | 3 + fs/afs/rotate.c | 17 +++- fs/afs/yfsclient.c | 249 +++++++++++++++++++++++++++++++++++++++++++++ fs/dcache.c | 1 + include/trace/events/afs.h | 6 ++ 10 files changed, 480 insertions(+), 64 deletions(-)
The pull request you sent on Fri, 26 Sep 2025 16:19:03 +0200: > git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.18-rc1.afs has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/5484a4ea7a1f208b886b58dd55cc55f418930f8a Thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/prtracker.html
Hey Linus, /* Summary */ This contains work adressing lockups reported by users when a systemd unit reading lots of files from a filesystem mounted with the lazytime mount option exits. With the lazytime mount option enabled we can be switching many dirty inodes on cgroup exit to the parent cgroup. The numbers observed in practice when systemd slice of a large cron job exits can easily reach hundreds of thousands or millions. The logic in inode_do_switch_wbs() which sorts the inode into appropriate place in b_dirty list of the target wb however has linear complexity in the number of dirty inodes thus overall time complexity of switching all the inodes is quadratic leading to workers being pegged for hours consuming 100% of the CPU and switching inodes to the parent wb. Simple reproducer of the issue: FILES=10000 # Filesystem mounted with lazytime mount option MNT=/mnt/ echo "Creating files and switching timestamps" for (( j = 0; j < 50; j ++ )); do mkdir $MNT/dir$j for (( i = 0; i < $FILES; i++ )); do echo "foo" >$MNT/dir$j/file$i done touch -a -t 202501010000 $MNT/dir$j/file* done wait echo "Syncing and flushing" sync echo 3 >/proc/sys/vm/drop_caches echo "Reading all files from a cgroup" mkdir /sys/fs/cgroup/unified/mycg1 || exit echo $$ >/sys/fs/cgroup/unified/mycg1/cgroup.procs || exit for (( j = 0; j < 50; j ++ )); do cat /mnt/dir$j/file* >/dev/null & done wait echo "Switching wbs" # Now rmdir the cgroup after the script exits This can be solved by: * Avoiding contention on the wb->list_lock when switching inodes by running a single work item per wb and managing a queue of items switching to the wb. * Allow rescheduling when switching inodes over to a different cgroup to avoid softlockups. * Maintain b_dirty list ordering instead of sorting it. /* Testing */ gcc (Debian 14.2.0-19) 14.2.0 Debian clang version 19.1.7 (3+b1) 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 8f5ae30d69d7543eee0d70083daf4de8fe15d585: Linux 6.17-rc1 (2025-08-10 19:41:16 +0300) are available in the Git repository at: git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.18-rc1.writeback for you to fetch changes up to 9426414f0d42f824892ecd4dccfebf8987084a41: Merge patch series "writeback: Avoid lockups when switching inodes" (2025-09-19 13:11:06 +0200) Please consider pulling these changes from the signed vfs-6.18-rc1.writeback tag. Thanks! Christian ---------------------------------------------------------------- vfs-6.18-rc1.writeback ---------------------------------------------------------------- Christian Brauner (1): Merge patch series "writeback: Avoid lockups when switching inodes" Jan Kara (4): writeback: Avoid contention on wb->list_lock when switching inodes writeback: Avoid softlockup when switching many inodes writeback: Avoid excessively long inode switching times writeback: Add tracepoint to track pending inode switches fs/fs-writeback.c | 133 +++++++++++++++++++++++++-------------- include/linux/backing-dev-defs.h | 4 ++ include/linux/writeback.h | 2 + include/trace/events/writeback.h | 29 +++++++++ mm/backing-dev.c | 5 ++ 5 files changed, 126 insertions(+), 47 deletions(-)
The pull request you sent on Fri, 26 Sep 2025 16:19:05 +0200: > git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.18-rc1.writeback has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/263e777ee3e00d628ac2660f68c82aeab14707b3 Thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/prtracker.html
Hey Linus, /* Summary */ This contains further preparatory changes for the asynchronous directory locking scheme: * Add lookup_one_positive_killable() which allows overlayfs to perform lookup that won't block on a fatal signal. * Unify the mount idmap handling in struct renamedata as a rename can only happen within a single mount. * Introduce kern_path_parent() for audit which sets the path to the parent and returns a dentry for the target without holding any locks on return. * Rename kern_path_locked() as it is only used to prepare for the removal of an object from the filesystem: kern_path_locked() => start_removing_path() kern_path_create() => start_creating_path() user_path_create() => start_creating_user_path() user_path_locked_at() => start_removing_user_path_at() done_path_create() => end_creating_path() NA => end_removing_path() /* Testing */ gcc (Debian 14.2.0-19) 14.2.0 Debian clang version 19.1.7 (3+b1) No build failures or warnings were observed. /* Conflicts */ Merge conflicts with mainline ============================= No known conflicts. Merge conflicts with other trees ================================ [1] https://lore.kernel.org/linux-next/aNOyrz1bd1WTrZgc@finisterre.sirena.org.uk [2] https://lore.kernel.org/linux-next/aNU3FtEZ3w_NcYwI@sirena.org.uk The following changes since commit 8f5ae30d69d7543eee0d70083daf4de8fe15d585: Linux 6.17-rc1 (2025-08-10 19:41:16 +0300) are available in the Git repository at: git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.18-rc1.async for you to fetch changes up to 4f5ea5aa0dcdd3c7487fbabad5b86b3cd7d2b8c4: Merge patch series "vfs: preparatory changes to centralize locking of create/remove/rename" (2025-09-23 12:37:42 +0200) Please consider pulling these changes from the signed vfs-6.18-rc1.async tag. Thanks! Christian ---------------------------------------------------------------- vfs-6.18-rc1.async ---------------------------------------------------------------- Christian Brauner (1): Merge patch series "vfs: preparatory changes to centralize locking of create/remove/rename" NeilBrown (6): VFS/ovl: add lookup_one_positive_killable() VFS: discard err2 in filename_create() VFS: unify old_mnt_idmap and new_mnt_idmap in renamedata VFS/audit: introduce kern_path_parent() for audit VFS: rename kern_path_locked() and related functions. debugfs: rename start_creating() to debugfs_start_creating() Documentation/filesystems/porting.rst | 12 ++ arch/powerpc/platforms/cell/spufs/syscalls.c | 4 +- drivers/base/devtmpfs.c | 22 ++-- fs/bcachefs/fs-ioctl.c | 10 +- fs/cachefiles/namei.c | 3 +- fs/debugfs/inode.c | 11 +- fs/ecryptfs/inode.c | 3 +- fs/init.c | 17 +-- fs/namei.c | 164 ++++++++++++++++++++------- fs/nfsd/vfs.c | 3 +- fs/ocfs2/refcounttree.c | 4 +- fs/overlayfs/overlayfs.h | 3 +- fs/overlayfs/readdir.c | 28 ++--- fs/smb/server/vfs.c | 11 +- include/linux/fs.h | 6 +- include/linux/namei.h | 21 ++-- kernel/audit_fsnotify.c | 11 +- kernel/audit_watch.c | 3 +- kernel/bpf/inode.c | 4 +- net/unix/af_unix.c | 6 +- 20 files changed, 216 insertions(+), 130 deletions(-)
The pull request you sent on Fri, 26 Sep 2025 16:19:06 +0200: > git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.18-rc1.async has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/449c2b302c8e200558619821ced46cc13cdb9aa6 Thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/prtracker.html
© 2016 - 2025 Red Hat, Inc.