Skip to content

Cloning PTS namespace

sukadev-r/[email protected] containers 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v2 Latest7 patches 17 repliesIn review

Patches in v2 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/7Propagate error code from devpts_pty_newdrivers/char/tty_io.c+2 -20 replies
2/7: Factor out PTY index allocationdrivers/char/tty_io.c fs/devpts/inode.c include/linux/devpts_fs.h+51 -350 replies
3/7: Enable multiple mounts of /dev/ptsfs/devpts/inode.c include/linux/devpts_fs.h+143 -280 replies
4/7Implement get_pts_ns() and put_pts_ns()include/linux/devpts_fs.h+20 -13 replies
5/7: Determine pts_ns from a pty's inode.drivers/char/pty.c drivers/char/tty_io.c fs/devpts/inode.c +1 more+119 -308 replies
6/7: Check for user-space mount of /dev/ptsfs/devpts/inode.c include/linux/devpts_fs.h+42 -34 replies
7/7: Enable cloning PTY namespacesfs/devpts/inode.c include/linux/devpts_fs.h include/linux/init_task.h +4 more+79 -60 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v2 yet.

Read the v2 thread

Cover letter [PATCH 0/7][v2] Cloning PTS namespace

Devpts namespace patchset

In continuation of the implementation of containers in mainline, we need to support multiple PTY namespaces so that the PTY index (ie the tty names) in one container is independent of the PTY indices of other containers. For instance this would allow each container to have a '/dev/pts/0' PTY and refer to different terminals.

[PATCH 1/7]: Propagate error code from devpts_pty_new [PATCH 2/7]: Factor out PTY index allocation [PATCH 3/7]: Enable multiple mounts of /dev/pts [PATCH 4/7]: Implement get_pts_ns() and put_pts_ns() [PATCH 5/7]: Determine pts_ns from a pty's inode. [PATCH 6/7]: Check for user-space mount of /dev/pts [PATCH 7/7]: Enable cloning PTY namespaces

Todo:
- This patchset depends on availability of additional clone flags. and relies on on Cedric's clone64 patchset.

- Needs more testing.

Changelog[v1]:
- Fixed circular reference by not caching the pts_ns in sb->s_fs_info (without incrementing reference count) and clearing the sb->s_fs_info when destroying the pts_ns (See patch 3/7 for details).

- To allow access to a child container's ptys from parent container, determine the 'pts_ns' of a 'pty' from its inode (See patch 5/7 for details.

- Added a check (hack) to ensure user-space mount of /dev/pts is done before creating PTYs in a new pts-ns (see patch 6/7 for details).

- Reorganized the patchset and removed redundant changes.

- Ported to work wih Cedric Le Goater's clone64() system call now that we are out of clone_flags.

Changelog[v0]:

This patchset is based on earlier versions developed by Serge Hallyn and Matt Helsley.