criu/include
Cyrill Gorcunov f0606bc8d9 tty: Introduce deferred checking of tty sids
The dumping of tty peers is somewhat tricky. And it became more
complex once we allowed to migrate/inherit sessions.

It's being found (in screen c/r) that we've a problem in looking
up of session leaders while dumping tty.

Let me explain with more details. Here is an example of screen
session

  PID   GID   SID
20567 20567 20567           SCREEN
20568 20568 20568  pts/3     \_ /bin/bash

The screen opens master peer (ptmx) and then provides
bash the slave peer (pts/3) where bash sets up a session
leader on it.

Thus we get interesting scenario -- our pstree construction
is done in lazy fashion, we run parasite code to fetch sid/pgid
of a process tree item only when we're really dumping the task.

Thus when we start dumping ptmx peer (which belongs to SCREEN)
we've not yet constructed the process tree item for children
(ie /bin/bash) and the lookup function in tty code (which walks
over all process items in a tree) simply fails to find sid of
child, because we've not yet dumped it.

Thus, to resolve such situation we verify tty sids at late stage
of dumping.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2012-10-29 13:37:34 +04:00
..
atomic.h atomic: add atomic_dec_and_test 2012-09-11 17:55:23 +04:00
bitops.h headers: mark functions as inline 2012-05-18 19:01:44 +04:00
compiler.h files: Use sys_kcmp to find file descriptor duplicates v4 2012-02-28 19:13:47 +04:00
crtools.h options: Add "--shell-job" option 2012-10-18 15:51:57 +04:00
eventfd.h dump: Move per-type dump opts into respective .c files 2012-05-04 15:34:55 +04:00
eventpoll.h dump: Move per-type dump opts into respective .c files 2012-05-04 15:34:55 +04:00
fifo.h fifo: Add checkpoint restore for fifos v4 2012-07-01 17:15:48 +04:00
file-ids.h protobuf: Start switching our image entries to Google's protobuf 2012-07-17 07:10:41 +04:00
files-reg.h rst file: Introduce the file_remap abstraction 2012-09-26 06:20:06 +04:00
files.h dump: Make struct fd_parms to carry @parasite_ctl pointer 2012-10-15 23:42:50 +04:00
image.h tty: Add checkpoint/restore for unix terminals v6 2012-09-12 20:00:54 +04:00
inet_diag.h inet: Disable dumping of shutdown sockets 2012-10-24 18:39:54 +04:00
inotify.h dump: Move per-type dump opts into respective .c files 2012-05-04 15:34:55 +04:00
ipc_ns.h show: Introduce ->show callback for fdset 2012-03-27 12:01:14 +04:00
kcmp-ids.h kcmp: Introduce generic object ID generator 2012-04-09 18:01:18 +04:00
libnetlink.h libnetlink: More helpers 2012-08-10 17:21:34 +04:00
linkage.h parasite: Move bootstrap code into parasite-head-x86-64.S 2012-04-18 18:22:52 +04:00
list.h list: Cleanup spaces/tabs mess 2012-02-01 14:38:49 +04:00
lock.h crtools: add a separate type for atomic variables 2012-09-11 17:55:15 +04:00
log-levels.h log: Move default loglevel macro to header 2012-10-07 21:03:53 +04:00
log.h log: Introduce a simple printf-like logging engine 2012-10-07 21:06:46 +04:00
memcpy_64.h Add builtin_memcpy helper 2012-03-29 15:14:06 +04:00
mount.h mount: Add abstraction layer for dumping file systems (v2) 2012-08-09 16:27:30 +04:00
namespaces.h pstree: Move struct pid to pstree.h 2012-10-08 18:59:36 +04:00
net.h net: Introduce netdev index to name resolver 2012-10-19 17:35:46 +04:00
netfilter.h net: Add code for locking a tcp connection with netfilter 2012-04-28 17:59:21 +04:00
packet_diag.h packet: Update diag header with fanout and rings 2012-08-20 15:32:25 +04:00
parasite-syscall.h tty: Sanitize tty parasite-side dumping 2012-10-15 23:55:34 +04:00
parasite.h tty: parasite -- Add support for new kernel ioctls to fetch state 2012-10-29 13:36:46 +04:00
pipes.h protobuf: Convert struct pipe_data_entry to PB engine 2012-07-17 14:50:23 +04:00
proc_parse.h mount: Add abstraction layer for dumping file systems (v2) 2012-08-09 16:27:30 +04:00
processor-flags.h Add processor-flags.h 2012-02-14 17:18:08 +04:00
protobuf.h tty: Add checkpoint/restore for unix terminals v6 2012-09-12 20:00:54 +04:00
pstree.h pstree: Define symbolic name for init process 2012-10-09 19:57:15 +04:00
ptrace.h Helper for si_code event extraction. 2012-04-25 21:35:40 +04:00
rbtree.h headers: mark functions as inline 2012-05-18 19:01:44 +04:00
restorer.h core: Support task scheduler policies and priorities 2012-10-17 00:23:25 +04:00
shmem.h shmem: Get rid of static array of dumped shmem areas 2012-08-17 00:20:58 +04:00
signalfd.h signalfd: Dumping and restoring 2012-08-02 12:26:35 +04:00
sk-inet.h inet: Disable dumping of shutdown sockets 2012-10-24 18:39:54 +04:00
sk-packet.h packet: Rings support 2012-08-20 15:32:55 +04:00
sk-queue.h sk-queue: Move struct sk_packet to C file 2012-07-16 07:05:06 +04:00
sockets.h unix: Add support for shutdown sockets 2012-10-24 18:39:54 +04:00
syscall-types.h core: Support task scheduler policies and priorities 2012-10-17 00:23:25 +04:00
syscall-x86-64.def syscalls: Add sys_madvise 2012-10-26 00:16:04 +04:00
sysctl.h show: Use pr_msg for showing contents on console 2012-03-02 11:12:59 +04:00
tty.h tty: Introduce deferred checking of tty sids 2012-10-29 13:37:34 +04:00
types.h types: Add a few MADV_ definition 2012-10-26 00:16:02 +04:00
unix_diag.h unix: Add support for shutdown sockets 2012-10-24 18:39:54 +04:00
util-net.h fown: get pid and uid-s from parasite 2012-09-05 16:41:14 +04:00
util.h restorer: Use the simple logging engine 2012-10-07 21:11:49 +04:00
uts_ns.h show: Introduce ->show callback for fdset 2012-03-27 12:01:14 +04:00