A mirror of the official Linux kernel repository just in case
Go to file
Christian Brauner a1d220d9da
nsfs: iterate through mount namespaces
It is already possible to list mounts in other mount namespaces and to
retrieve namespace file descriptors without having to go through procfs
by deriving them from pidfds.

Augment these abilities by adding the ability to retrieve information
about a mount namespace via NS_MNT_GET_INFO. This will return the mount
namespace id and the number of mounts currently in the mount namespace.
The number of mounts can be used to size the buffer that needs to be
used for listmount() and is in general useful without having to actually
iterate through all the mounts. The structure is extensible.

And add the ability to iterate through all mount namespaces over which
the caller holds privilege returning the file descriptor for the next or
previous mount namespace.

To retrieve a mount namespace the caller must be privileged wrt to it's
owning user namespace. This means that PID 1 on the host can list all
mounts in all mount namespaces or that a container can list all mounts
of its nested containers.

Optionally pass a structure for NS_MNT_GET_INFO with
NS_MNT_GET_{PREV,NEXT} to retrieve information about the mount namespace
in one go. Both ioctls can be implemented for other namespace types
easily.

Together with recent api additions this means one can iterate through
all mounts in all mount namespaces without ever touching procfs.

Link: https://lore.kernel.org/r/20240719-work-mount-namespace-v1-5-834113cab0d2@kernel.org
Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Christian Brauner <brauner@kernel.org>
2024-08-09 12:46:59 +02:00
arch This includes the following changes related to sparc for v6.11: 2024-07-18 15:48:41 -07:00
block for-6.11/block-20240710 2024-07-15 14:20:22 -07:00
certs kbuild: use $(src) instead of $(srctree)/$(src) for source directory 2024-05-10 04:34:52 +09:00
crypto This push fixes a bug in the new ecc P521 code as well as a buggy 2024-05-20 08:47:54 -07:00
Documentation Nothing hugely exciting happening in the documentation tree this time 2024-07-18 15:54:16 -07:00
drivers This includes the following changes related to sparc for v6.11: 2024-07-18 15:48:41 -07:00
fs nsfs: iterate through mount namespaces 2024-08-09 12:46:59 +02:00
include nsfs: iterate through mount namespaces 2024-08-09 12:46:59 +02:00
init init/Kconfig: remove CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND 2024-07-18 10:33:14 -07:00
io_uring Networking changes for 6.11. Not much excitement - a handful of large 2024-07-16 19:28:34 -07:00
ipc slab updates for 6.11 2024-07-18 15:08:12 -07:00
kernel bcachefs changes for 6.11-rc1 (version 2) 2024-07-18 17:27:43 -07:00
lib slab updates for 6.11 2024-07-18 15:08:12 -07:00
LICENSES LICENSES: Add the copyleft-next-0.3.1 license 2022-11-08 15:44:01 +01:00
mm NFS Client Updates for Linux 6.11 2024-07-18 17:17:30 -07:00
net NFS Client Updates for Linux 6.11 2024-07-18 17:17:30 -07:00
rust slab updates for 6.11 2024-07-18 15:08:12 -07:00
samples Probes updates for v6.11: 2024-07-18 12:19:20 -07:00
scripts Nothing hugely exciting happening in the documentation tree this time 2024-07-18 15:54:16 -07:00
security Performance events changes for v6.11: 2024-07-16 17:13:31 -07:00
sound drm next for 6.11-rc1: 2024-07-18 09:34:02 -07:00
tools slab updates for 6.11 2024-07-18 15:08:12 -07:00
usr kbuild: use $(src) instead of $(srctree)/$(src) for source directory 2024-05-10 04:34:52 +09:00
virt KVM fixes for 6.10 2024-06-21 08:03:55 -04:00
.clang-format Docs: Move clang-format from process/ to dev-tools/ 2024-06-26 16:36:00 -06:00
.cocciconfig
.editorconfig .editorconfig: remove trim_trailing_whitespace option 2024-06-13 16:47:52 +02:00
.get_maintainer.ignore Add Jeff Kirsher to .get_maintainer.ignore 2024-03-08 11:36:54 +00:00
.gitattributes .gitattributes: set diff driver for Rust source code files 2023-05-31 17:48:25 +02:00
.gitignore kbuild: create a list of all built DTB files 2024-02-19 18:20:39 +09:00
.mailmap soc: dt updates for 6.11 2024-07-16 11:43:51 -07:00
.rustfmt.toml rust: add .rustfmt.toml 2022-09-28 09:02:20 +02:00
COPYING COPYING: state that all contributions really are covered by this file 2020-02-10 13:32:20 -08:00
CREDITS tracing: Update of MAINTAINERS and CREDITS file 2024-07-18 14:08:42 -07:00
Kbuild Kbuild updates for v6.1 2022-10-10 12:00:45 -07:00
Kconfig kbuild: ensure full rebuild when the compiler is updated 2020-05-12 13:28:33 +09:00
MAINTAINERS bcachefs changes for 6.11-rc1 (version 2) 2024-07-18 17:27:43 -07:00
Makefile asm-generic updates for 6.11 2024-07-16 12:09:03 -07:00
README README: Fix spelling 2024-03-18 03:36:32 -06:00

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the reStructuredText markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.