2
0
mirror of https://github.com/checkpoint-restore/criu synced 2025-08-30 22:05:36 +00:00
Commit Graph

800 Commits

Author SHA1 Message Date
Cyrill Gorcunov
1824611b8e list: Cleanup spaces/tabs mess
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-01 14:38:49 +04:00
Kir Kolyshkin
c7168143a3 ipc_ns.c: remove hardcoded sizes
Use sizeof() instead.

Signed-off-by: Kir Kolyshkin <kir@openvz.org>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-01 02:55:16 +04:00
Kir Kolyshkin
11f2ce03da parse_pid_stat(): use pr_err()
We do not want to use pr_perror() here, because

1. fscanf only sets errno in case it returns EOF
2. we are not really interested in errno value

So use pr_err() instead.

Signed-off-by: Kir Kolyshkin <kir@openvz.org>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-01 02:55:16 +04:00
Kir Kolyshkin
1408ead858 Assorted trivial message fixes
* kid -> child
* First letter should be uppercase
* Misc typos in messages and comments

Signed-off-by: Kir Kolyshkin <kir@openvz.org>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-01 02:55:16 +04:00
Kir Kolyshkin
ad3bc05771 uts_ns.c: use pr_perror() where appropriate
There are quite a few cases where we need to print system error string.

Signed-off-by: Kir Kolyshkin <kir@openvz.org>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-01 02:55:16 +04:00
Cyrill Gorcunov
ca09995934 A few cleanups to uts_ns
- drop hardcoded numbers, use sizeof
 - drop unneeded local argument

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-31 23:35:07 +04:00
Cyrill Gorcunov
916f79a64b uts-ns: Add new line between system headers and our owns
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-31 23:34:58 +04:00
Cyrill Gorcunov
aecc985060 restorer: Don't preceed #defines with tabs
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-31 23:34:47 +04:00
Cyrill Gorcunov
bbf71707b9 ipc: Add missing ipc_ns.h
Which was missed to add to git index
in one of previous IPC patch series.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-31 22:42:33 +04:00
Stanislav Kinsbursky
bb6d57e856 IPC: namespace tunables migration test
Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-31 22:32:22 +04:00
Stanislav Kinsbursky
c75c33cb86 IPC: restore namespace itself
Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-31 22:32:22 +04:00
Stanislav Kinsbursky
5d40ea2ff1 IPC: show dump content
Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-31 22:32:22 +04:00
Stanislav Kinsbursky
c826057a9c IPC: dump namespace itself
Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-31 22:32:22 +04:00
Stanislav Kinsbursky
9cdfe71921 namespaces: docs updated
Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-31 22:32:22 +04:00
Stanislav Kinsbursky
0213d3ec64 namespaces: parametrized namespace option introduced
v2: strlen() check removed from parse_ns_string()

Now '-n' option must be followed by namespaces tags, separated by commas.
Currently, only "uts" namespace is supported.

Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-31 22:32:22 +04:00
Cyrill Gorcunov
1e694235b4 zdtm: Drop pthread00 test for a while
It requires properly syncs in test case
itself so I need to rewrite the test code
(which I'm going to do pretty soon).

Meanwhile drop this test-case.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Acked-by: Andrey Vagin <avagin@openvz.org>
2012-01-31 19:48:34 +04:00
Cyrill Gorcunov
7705df5397 crtools: Make fdset operations robust against open() errors
There are two cases for cr_fdset_open

 - It might be called with already allocated
   memory so we should reuse it.

 - It might be called with NULL pointing out
   that caller expects us to allocate memory.

If an open() error happens somewhere inside cr_fdset_open
it requires two error paths

 - Just close all files opened but don't free memory
   if it was not allocated by us

 - Close all files opened *and* free memory allocated
   by us.

In any case we should close all files opened so close_cr_fdset()
helper is splitted into two parts.

Also the caller should be ready for such semantics as well and
do not re-assign pointers obtained but simply test for NULL
on results.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
2012-01-31 19:15:32 +04:00
Kir Kolyshkin
6c1e5978c4 hex_dump(): fix address printing
- Fix printing the same address on every line (ie p+i, not p).
 - Use GNU %p to print pointer, to avoid messing with width etc.
   Side effect: 0x is added, hope that's ok.

Signed-off-by: Kir Kolyshkin <kir@openvz.org>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-31 17:19:00 +04:00
Cyrill Gorcunov
a9ba9732c9 hex_dump: Convert argument to long
To eliminate format problem

 | util.c:60:10: error: format ‘%lx’ expects argument of
 | type ‘long unsigned int’, but argument 2 has type
 | ‘unsigned char *’ [-Werror=format]

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-31 16:54:03 +04:00
Kir Kolyshkin
cced37daff files.c: fix printf format warnings
files.c: In function ‘collect_fd’:
files.c:111:2: error: format ‘%d’ expects type ‘int’, but argument 3 has type ‘u64’
files.c: In function ‘open_fd’:
files.c:348:3: error: format ‘%d’ expects type ‘int’, but argument 2 has type ‘u64’
files.c: In function ‘receive_fd’:
files.c:425:5: error: format ‘%d’ expects type ‘int’, but argument 4 has type ‘u64’
files.c:425:5: error: format ‘%d’ expects type ‘int’, but argument 5 has type ‘u64’

Signed-off-by: Kir Kolyshkin <kir@openvz.org>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-31 15:57:34 +04:00
Kir Kolyshkin
6c9d6a86a4 sockets.c: fix printf format warnings
sockets.c: In function ‘try_dump_socket’:
sockets.c:366:3: error: format ‘%d’ expects type ‘int’, but argument 4 has type ‘__ino_t’

Signed-off-by: Kir Kolyshkin <kir@openvz.org>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-31 15:57:25 +04:00
Kir Kolyshkin
e70f8d2376 cr-show.c: fix printf format warnings
cr-show.c: In function ‘show_pipes’:
cr-show.c:119:3: error: format ‘%8lx’ expects type ‘long unsigned int’, but argument 2 has type ‘u32’
cr-show.c:119:3: error: format ‘%8lx’ expects type ‘long unsigned int’, but argument 3 has type ‘u32’
cr-show.c:119:3: error: format ‘%8lx’ expects type ‘long unsigned int’, but argument 4 has type ‘u32’
cr-show.c:119:3: error: format ‘%8lx’ expects type ‘long unsigned int’, but argument 5 has type ‘u32’

Signed-off-by: Kir Kolyshkin <kir@openvz.org>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-31 15:57:16 +04:00
Kir Kolyshkin
a207bee1a1 cr-dump.c: fix printf format warnings
cr-dump.c: In function ‘dump_one_reg_file’:
cr-dump.c:128:2: error: format ‘%8x’ expects type ‘unsigned int’, but argument 5 has type ‘long unsigned int’
cr-dump.c: In function ‘dump_one_pipe’:
cr-dump.c:223:2: error: format ‘%d’ expects type ‘int’, but argument 2 has type ‘long unsigned int’
cr-dump.c:237:3: error: format ‘%8lx’ expects type ‘long unsigned int’, but argument 2 has type ‘u32’
cr-dump.c:237:3: error: format ‘%8lx’ expects type ‘long unsigned int’, but argument 3 has type ‘u32’
cr-dump.c:237:3: error: format ‘%8lx’ expects type ‘long unsigned int’, but argument 4 has type ‘u32’
cr-dump.c:237:3: error: format ‘%8lx’ expects type ‘long unsigned int’, but argument 5 has type ‘u32’
cr-dump.c:240:3: error: format ‘%d’ expects type ‘int’, but argument 4 has type ‘long unsigned int’
cr-dump.c: In function ‘dump_one_fd’:
cr-dump.c:257:3: error: format ‘%d’ expects type ‘int’, but argument 5 has type ‘long unsigned int’
cr-dump.c:262:3: error: format ‘%d’ expects type ‘int’, but argument 4 has type ‘long unsigned int’
cr-dump.c:272:4: error: format ‘%d’ expects type ‘int’, but argument 3 has type ‘long unsigned int’
cr-dump.c:286:4: error: format ‘%d’ expects type ‘int’, but argument 4 has type ‘long unsigned int’
cr-dump.c:295:2: error: format ‘%d’ expects type ‘int’, but argument 4 has type ‘long unsigned int’
cr-dump.c: In function ‘dump_task_files’:
cr-dump.c:340:3: error: too few arguments for format

Signed-off-by: Kir Kolyshkin <kir@openvz.org>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-31 15:57:07 +04:00
Kir Kolyshkin
b44cd5885c proc_parse.c: fix printf format warnings
proc_parse.c: In function ‘parse_maps’:
proc_parse.c:75:6: error: format ‘%Lu’ expects type ‘long long unsigned int’, but argument 5 has type ‘u64’
proc_parse.c:118:5: error: format ‘%Lu’ expects type ‘long long unsigned int’, but argument 5 has type ‘u64’

Signed-off-by: Kir Kolyshkin <kir@openvz.org>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-31 15:56:56 +04:00
Kir Kolyshkin
9e08244291 cr-restore.c: fix printf format warnings
cr-restore.c: In function ‘fixup_vma_fds’:
cr-restore.c:578:4: error: format ‘%d’ expects type ‘int’, but argument 6 has type ‘long unsigned int’
cr-restore.c: In function ‘sigreturn_restore’:
cr-restore.c:1693:4: error: format ‘%li’ expects type ‘long int’, but argument 4 has type ‘int’
cr-restore.c:1738:3: error: format ‘%d’ expects type ‘int’, but argument 4 has type ‘long int’
cr-restore.c:1751:3: error: format ‘%d’ expects type ‘int’, but argument 4 has type ‘long int’
cr-restore.c:1755:3: error: format ‘%d’ expects type ‘int’, but argument 3 has type ‘long int’
cr-restore.c:1868:4: error: format ‘%8p’ expects type ‘void *’, but argument 3 has type ‘long int’

Signed-off-by: Kir Kolyshkin <kir@openvz.org>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-31 15:56:42 +04:00
Kir Kolyshkin
fa5ce3112f Annotate printk with printf attribute
This way gcc will be able to catch invalid format bugs.

Signed-off-by: Kir Kolyshkin <kir@openvz.org>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-31 15:56:33 +04:00
Kir Kolyshkin
6ce8d8ab93 Make BUG_ON() clang-compatible
When trying to compile the beast with clang, it complains:

====
./include/lock.h:33:2: error: indirection of non-volatile null pointer will be deleted, not trap
        BUG_ON(ret < 0);
        ^~~~~~~~~~~~~~~
In file included from restorer.c:18:
./include/util.h:118:27: note: instantiated from:
#define BUG_ON(condition)       BUG_ON_HANDLER((condition))
                                ^
./include/util.h💯4: note: instantiated from:
                        *(unsigned long *)NULL = 0xdead0000 + __LINE__; \
                        ^
====

Make clang happy again by adding 'volatile'.

Signed-off-by: Kir Kolyshkin <kir@openvz.org>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-31 15:56:23 +04:00
Kir Kolyshkin
0b237ae9f2 pr_perror(): print error at the end of line
This is a standard convention to print error message (i.e. strerror(errno))
at the end of line, like this:

        Cannot remove file: Permission denied

So pr_perror is fixed to follow this convention (using GNU extension
%m helps a lot here). Unfortunately, due to this we have to make
pr_perror() print a new line character, too, so we had to strip it
from the all pr_perror() invocations.

That (appending a newline) also makes pr_perror() a black sheep
in the herd of pr_* helpers, but what can we do? Worst case scenario
is an extra newline after an error message, not too harmful.

An alternative approach (stripping the newline from the passed format
string and re-adding it) was discussed thoroughly, and it was decided
that such a hack looks a bit too dirty.

Signed-off-by: Kir Kolyshkin <kir@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-31 15:49:15 +04:00
Stanislav Kinsbursky
225d119e5d namespaces: split UTS and generic code
Generic code will be used for other namespaces.

Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-31 13:43:28 +04:00
Kir Kolyshkin
8a6269e490 restore_pipe_data(): fix a typo
Found using clang:

cr-restore.c:796:8: error: use of unary operator that may be intended as compound assignment (+=)
                size =+ ret;
                     ^~

Signed-off-by: Kir Kolyshkin <kir@openvz.org>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-31 13:05:29 +04:00
Konstantin Khlebnikov
be6a7feae7 cr: reuse zero_page_entry in fixup_pages_data
fix compilation error:
cr-restore.c:621:13: error: variably modified ‘zpage’ at file scope

Signed-off-by: Konstantin Khlebnikov <khlebnikov@openvz.org>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-30 23:03:27 +04:00
Kir Kolyshkin
b8b0dd42a7 Remove duplicate strerror(errno) printing
Function pr_perror() already spits out strerror(errno), no need to do it
in the calling code.

Signed-off-by: Kir Kolyshkin <kir@openvz.org>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-30 21:29:51 +04:00
Kir Kolyshkin
789a2c7f7a Trivial whitespace cleanup
Cleaning a few space-at-EOL occurences, plus one spaces-instead-of-tab.

Found using:

	git grep -n '[[:space:]]$'
	git grep -n '        '

Signed-off-by: Kir Kolyshkin <kir@openvz.org>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-30 21:29:42 +04:00
Cyrill Gorcunov
ef57024410 show: Always print process' exit_code
It's suitable not for info only but in debug purpose as well.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Acked-by: Pavel Emelyanov <xemul@openvz.org>
2012-01-30 17:39:21 +04:00
Cyrill Gorcunov
5345889886 show: Drop tab'ified empty lines
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Acked-by: Pavel Emelyanov <xemul@openvz.org>
2012-01-30 17:39:21 +04:00
Cyrill Gorcunov
4a7764c5ee restore: Make sure exit_code is < 128
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Acked-by: Pavel Emelyanov <xemul@openvz.org>
2012-01-30 17:39:20 +04:00
Andrey Vagin
a00b90c041 parasite: correct error code
Signed-off-by: Andrey Vagin <avagin@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-30 16:02:47 +04:00
Andrey Vagin
e6a52bdad1 parasite: remove unused commands
Signed-off-by: Andrey Vagin <avagin@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-30 16:02:38 +04:00
Cyrill Gorcunov
162bcdeacf Merge branch 'pre'
* pre:
  zdtm: Tests for xids and caps

Conflicts:
	test/zdtm.sh

The sockets00 test was added earlier.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-30 13:04:57 +04:00
Pavel Emelyanov
d40e50d7c9 zdtm: Tests for xids and caps
Rather simple and straightforward and atomic tests should be.
The only problem is that after changing any from the subj the
subsequent opens for .out/.pid files fail so test actually
forks in the beginning. That said -- we need some API in the
lib/ for such forkers.

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-30 13:03:29 +04:00
Pavel Emelyanov
beb158a66e cr: Task creds support
Dumping is simple. All but secbits can be read from proc, secbits
are got from parasite.

Restoring is a bit tricky -- when you change anything on kernel
cred's struct it performs sophisticated checks and can change
some more stuff than requested, so the creds restoration procedure
is carefully commented step-by-step.

Another thing to mention is that creds are restored after everything
else, i.e. right before performing final threads sync and sigreturns.
This is done to avoid potential problems with insufficient caps for
restoring other stuff (e.g. CAP_DAC_OVERRIDE or zero euid is most
likely required for opening any image file and the notorious control
/proc/sys/kernel/ns_last_pid, which in turn is performed till the
very last moment).

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-30 13:00:50 +04:00
Pavel Emelyanov
d846d108f6 syscalls: Prepare syscalls and bits for (mostly) setting creds
These are setXXXid, capset and various bits for prctl and caps machinery.
The thing is that the caps API is not yet fully in glibc so we have to
declare some bits even for core code, not just for restorer/parasite.

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-30 13:00:33 +04:00
Pavel Emelyanov
f382d2a376 proc_parse: Routine for reading creds from /proc/pid/status
All the IDs and caps are in there. Just read them for future use.

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-30 13:00:18 +04:00
Pavel Emelyanov
47c161f2dc parasite: Dump misc command
Add command and basis for dumping minor bits for task
from parasite code. It's supposed to retrieve minor bits
form tasks which cannot be read from /proc.

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-30 12:59:54 +04:00
Cyrill Gorcunov
25aa9e062c zdtm: Add utsname.c source code
I occasionally droppped this file but it's
a part of commit

dcd64e9d10

So add it back.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-30 12:52:44 +04:00
Andrey Vagin
00a337473e zdtm: cleanout netlink00
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2012-01-30 09:37:13 +03:00
Cyrill Gorcunov
3a1de34132 zdtm: Disable strict aliasing optimization
Just disable it for a while, otherwise we get
in test/zdtm/live/streaming/netlink00.c

cc1: warnings being treated as errors
netlink00.c: In function ‘form_request_del’:
netlink00.c:311: error: dereferencing pointer ‘rtap’ does break strict-aliasing rules
netlink00.c:312: error: dereferencing pointer ‘rtap’ does break strict-aliasing rules
netlink00.c:310: note: initialized from here
netlink00.c: In function ‘form_request_add’:
netlink00.c:271: error: dereferencing pointer ‘rtap’ does break strict-aliasing rules
netlink00.c:272: error: dereferencing pointer ‘rtap’ does break strict-aliasing rules
netlink00.c:270: note: initialized from here

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-30 10:36:36 +04:00
Cyrill Gorcunov
65ac9ccb04 Drop kernel patching from README
It's outdated anyway.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-29 16:26:36 +04:00
Cyrill Gorcunov
980529f44f docs: Update options
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-29 00:40:26 +04:00
Cyrill Gorcunov
17a4a6cd09 docs: Initial commit
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-29 00:09:32 +04:00