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