[PATCH v4 0/3] nsproxy: attach to multiple namespaces

From: Christian Brauner
Date: Tue May 05 2020 - 10:04:54 EST


This is v4.

/* v4 */
There are no major changes. There's a fix for the nstype == 0 case Eric
spotted when porting setns() to struct nsset in the first patch.
I've also added a few lines to the second patch that we want the ability
to attach to subsets of namespaces with pidfds. I also mentioned the
possible future extension that Eric pointed at which amounts to assuming
even more of the callers context. But let's wait for users with that
one.

/* v3 */
The permission bits have already seen some vetting which has been
helpful and allowed us to drop the ns_capable_cred() patch. That's the
only major change.

All selftests pass. People interested in playing with this can get it
from three locations as usual (it's not yet in my for-next):
https://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux.git/log/?h=setns_pidfd
https://gitlab.com/brauner/linux/-/commits/setns_pidfd
https://github.com/brauner/linux/tree/setns_pidfd

Thanks!
Christian

Christian Brauner (3):
nsproxy: add struct nsset
nsproxy: attach to namespaces via pidfds
selftests/pidfd: add pidfd setns tests

fs/namespace.c | 15 +-
fs/nsfs.c | 5 +
include/linux/mnt_namespace.h | 2 +
include/linux/nsproxy.h | 24 +
include/linux/proc_fs.h | 6 +
include/linux/proc_ns.h | 4 +-
ipc/namespace.c | 7 +-
kernel/cgroup/namespace.c | 5 +-
kernel/nsproxy.c | 305 ++++++++++-
kernel/pid_namespace.c | 5 +-
kernel/time/namespace.c | 5 +-
kernel/user_namespace.c | 8 +-
kernel/utsname.c | 5 +-
net/core/net_namespace.c | 5 +-
tools/testing/selftests/pidfd/.gitignore | 1 +
tools/testing/selftests/pidfd/Makefile | 3 +-
tools/testing/selftests/pidfd/config | 6 +
.../selftests/pidfd/pidfd_setns_test.c | 473 ++++++++++++++++++
18 files changed, 837 insertions(+), 47 deletions(-)
create mode 100644 tools/testing/selftests/pidfd/config
create mode 100644 tools/testing/selftests/pidfd/pidfd_setns_test.c


base-commit: ae83d0b416db002fe95601e7f97f64b59514d936
--
2.26.2