pipe: Rework pipe data restore to use vmsplice

This serves two things -- kills annoying data offset management
which makes protobuf switch too ugly. And removes the need to
seek the pipe data image, which in turn is the prerequisity for
streaming migration.

Memory usage is still optimal, since we still use splice on dump
path and on restore stage we F_GIFT pipe buffers to the kernel.

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
pipes: Use pipe_entry as a reference in pipe_info

Need it for PB transition.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
sockets, unix: Use unix_sk_entry as a reference in unix_sk_info

For PB transition.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
regfile: Fix regular file open and lseek on restore

1. Seeking should be done for real files only , for fifos using the
   same code -- shouldn't. Thus -- move the lseek to proper place;
2. It's nice to print error on file open error;
3. It's nice to handle lseek error.

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
skqueue: Show should use pr_msg

Otherwise the show result depends on the loglevel :\

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
zdtm: /sys/kernel/debug not present in container

debugfs isn't virtualized and never will be

jira #PCLIN-31059

Signed-off-by: Konstantin Khlebnikov <khlebnikov@openvz.org>
Acked-by: Andrey Vagin <avagin@parallels.com>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
sk-queue: Use int values in getsockopt

The kernel threats them as interger values so
we should declare them this way. Moreover, explicitly
clean them up to eliminate side effects.

Initially I hit a problem where high bits of long "size"
variable was containing some crap from stack and in result
I've got errors like

 | Error (sk-queue.c:102): dump_sk_queue: Can't allocate 171798904800 bytes
 | Error (cr-dump.c:1289): Dump files (pid: 2505) failed with -1

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Acked-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
sockets, inet: Use inet_sk_entry as a reference in inet_sk_info

For PB transition.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
sk-queue: Use sk_packet_entry as a reference

Need for PB transition.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
sk-queue: Move struct sk_packet to C file

No need to keep it in header, sk_packet used solely in one C file.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
cr-dump: create a transport socket only once

Before this patch a transport socket was created on-demand for each operation
requiring it. It will be problematic, when we start supporting net namespaces.
That said -- create a transport sockets and interconnect them early.

Signed-off-by: Andrey Vagin <avagin@openvz.org>
Acked-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
parasite: Remove addr ards from drain fds cmd struct

After previous patch they are no longer required.

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>