[Devel] [PATCH RH7 0/3] ioctl: port NS_GET_USERNS and NS_GET_PARENT

Pavel Tikhomirov ptikhomirov at virtuozzo.com
Wed Nov 29 15:47:04 MSK 2017


Need these to be able to enter owner's userns of mountnamespace to have
privileges to unmount everything, to uncover dumpable overmounted
mounts. NS_GET_PARENT is not a must here but it is nice to have it too
for criu.

https://jira.sw.ru/browse/PSBM-57362

Rework mainstream patches as we don't have nsfs and ns_common.

Other option can be porting 10 more patches:

5d826c847b34 ("new helper: readlink_copy()")
435d5f4bb2cc ("common object embedded into various struct ....ns")
58be28256d98 ("make mntns ->get()/->put()/->install()/->inum() work with
&mnt_ns->ns")
ff24870f46d5 ("netns: switch ->get()/->put()/->install()/->inum() to
working with &net->ns")
3c0411846118 ("switch the rest of proc_ns_operations to working with
&...->ns")
64964528b24e ("make proc_ns_operations work with struct ns_common *
instead of void *")
6344c433a452 ("new helpers: ns_alloc_inum/ns_free_inum")
33c429405a2c ("copy address of proc_ns_ops into ns_common")
f77c80142e1a ("bury struct proc_ns in fs/proc")
e149ed2b805f ("take the targets of /proc/*/ns/* symlinks to separate fs")

And re-applying on top of them:
25b14e92af1a ("ns: allow ns_entries to have custom symlink content")

And porting fix as new version uses rcu:
073c516ff735 ("nsfs: mark dentry with DCACHE_RCUACCESS")

But still ioctls won't apply to clean after it, so I think complete
rework here is a better option.

Pavel Tikhomirov (3):
  kernel: add a helper to get an owning user namespace for a namespace
  nsfs: add ioctl to get an owning user namespace for ns file descriptor
  nsfs: add ioctl to get a parent namespace

 fs/namespace.c                 |  7 ++++
 fs/proc/namespaces.c           | 87 ++++++++++++++++++++++++++++++++++++++----
 include/linux/proc_ns.h        |  2 +
 include/linux/user_namespace.h |  9 +++++
 ipc/namespace.c                |  7 ++++
 kernel/pid_namespace.c         | 28 ++++++++++++++
 kernel/user_namespace.c        | 26 +++++++++++++
 kernel/utsname.c               |  7 ++++
 net/core/net_namespace.c       |  7 ++++
 9 files changed, 173 insertions(+), 7 deletions(-)

-- 
2.13.6



More information about the Devel mailing list