lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20251128-vfs-v619-77cd88166806@brauner>
Date: Fri, 28 Nov 2025 17:48:11 +0100
From: Christian Brauner <brauner@...nel.org>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: Christian Brauner <brauner@...nel.org>,
	linux-fsdevel@...r.kernel.org,
	linux-kernel@...r.kernel.org
Subject: [GIT PULL 00/17 for v6.19] v6.19

Hey Linus,

This is the batch of pull requests for the v6.19 merge window!

We have a couple of inter-dependencies between branches. Notably the
cred guard work and the directory locking work are a prerequisite for
the overlayfs work for this cycle.

We also have an external dependency on the kbuild tree's work to enable
-fms-extension. So pulling the vfs work before the kbuild work will
bring that in. Which is fine. I'm just making sure you're aware of it.

This cycle was quite busy with a lot of infrastructure work and cleanups.

There is the new listns() system call that allows userspace to iterate
through namespaces in the system. Currently there's no direct way to
enumerate namespaces - applications must scan /proc/<pid>/ns/ across all
processes, which is inefficient, incomplete (misses namespaces kept
alive only by file descriptors or bind mounts), and requires broad /proc
access. The new system call supports pagination, filtering by namespace
type, and filtering by owning user namespace.

To support listns() and future namespace work, we've introduced an
active reference count that tracks namespace visibility to userspace. A
namespace is visible when it's in use by a task, persisted through a VFS
object, or is the parent of child namespaces. This prevents resurrection
of namespaces that are pinned only for internal kernel reasons.

There's the credential guard infrastructure change for this cycle that
you triggered. :) We now have with_kernel_creds() and
scoped_with_kernel_creds() guards that allow using kernel credentials
without allocating and copying them. We also have scoped_with_creds()
for the common override_creds()/revert_creds() pattern, and prepare
credential guards for more complex cases. All of overlayfs has been
converted to use these guards.

The inode state accessor work from last cycle continues. We now hide
inode->i_state behind accessors entirely, making plain access fail to
compile. This allows asserting correct usage - locking, flag
manipulation, detecting when code clears already-missing flags or sets
flags when illegal.

Directory operations are getting centralized locking helpers as part of
NeilBrown's effort to eventually allow multiple concurrent operations in
a directory by locking target dentries rather than whole parent
directories.

We now also have recall-only directory delegations for knfsd.

The iomap work includes FUSE support for buffered reads using iomap,
enabling granular uptodate tracking with large folios. There's also zero
range folio batch support to handle dirty folios over unwritten
mappings, and DIO write completions can now run from interrupt context
again for pure overwrites, reducing context switches for
high-performance workloads.

The FD_ADD() and FD_PREPARE() primitives simplify the ubiquitous pattern
of get_unused_fd_flags() + create file + fd_install() that currently
requires cumbersome cleanup paths. The series removes roughly double the
code it adds by eliminating convoluted cleanup logic across many
subsystems. This work came late in the cycle but is quite nice - an
alternative pull request with only trivial filesystem conversions is
available if preferred. The KVM conversions were reverted as they prefer
to take those through their tree.

Note that I provided two pull requests for FD_{ADD,PREPARE}():

(1) [GIT PULL 16/17 for v6.19] vfs fd prepare
    Message-Id: <20251128-vfs-fd-prepare-v619-e23be0b7a0c5@...uner>
    contains everything I sent out and a few later fixes and with a
    revert of the kvm conversions. The kvm maintainers want to take it
    to their tree apparently.

(2) [GIT PULL 17/17 for v6.19] vfs fd prepare minimal
    Message-Id: <20251128-vfs-fd-prepare-minimal-v619-41df48e056e7@...uner>
    contains a condensed version with anything that's complex removed.

I think (1) is fine but I understand wanting to be a bit more
conservative so I also provided (2).

There's the usual collection of cleanups: writeback interface
simplification removing low-level filemap_* interfaces, path lookup
optimizations with cheaper MAY_EXEC handling, step_into()/walk_component()
inlining, and the start of splitting up the monolithic fs.h header into
focused headers for superblock code.

Smaller items include folio_next_pos() helper fixing a 32-bit ocfs2 bug,
minix filesystem syzbot fixes, autofs fix for futile mount triggers in
private mount namespaces, and coredump/pidfd improvements exposing the
coredump signal.

Thanks!
Christian

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ