2
0
mirror of https://github.com/checkpoint-restore/criu synced 2025-08-31 22:35:33 +00:00
Commit Graph

7730 Commits

Author SHA1 Message Date
Andrei Vagin
10801f3632 page-server: don't return a server pid from page-server
This patch fixes an exit code if a page-server is started
as a daemon. Now the criu exits with a pid of a page server,
it's meaningless, because pid is usually bigger than 128.

travis-ci: success for series starting with [1/2] page-server: don't return a server pid from page-server
Signed-off-by: Andrei Vagin <avagin@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 14:09:32 +03:00
Andrei Vagin
78d7cf92c7 namespace: use ferror() to detect errors of fscanf()
Currently we check errno, but musl-libc doesn't zero it,
if fscanf() has returned EOF without errors.

travis-ci: success for A few fixes for Alpine Linux
Signed-off-by: Andrei Vagin <avagin@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 14:09:32 +03:00
Andrei Vagin
8e93583d28 criu: user raw syscalls for sched_getscheduler and sched_getparam
They are not implemented in musl-libc (alpine).

travis-ci: success for A few fixes for Alpine Linux
Signed-off-by: Andrei Vagin <avagin@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 14:09:32 +03:00
Kirill Tkhai
b4e2768298 eventpoll: Fix dependency check
In the case when one eventpoll in polled by another eventpoll,
we should wait till the polled epoll is opened. So, as the stage
FLE_RESTORED is after FLE_OPEN, it's also OK.

travis-ci: success for eventpoll: Fix dependency check
Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 14:09:32 +03:00
Kirill Tkhai
a80aba144a files: Do not lost original errno value
The callers of rfi_remap() are interested in a errno,
linkat_hard() returns. So, preserve errno before we
call rm_parent_dirs().

Reported-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Acked-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 14:09:32 +03:00
Andrei Vagin
1c478a2e48 tty: split pty_open_ptmx_index()
We are going to create slave pty-s to bind-mount them,
but at this moment we don't have file_desc-s and actually
can't open /dev/ptmx by path.

Signed-off-by: Andrei Vagin <avagin@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 14:09:32 +03:00
Andrei Vagin
129b18d375 unix: switch into the root mount namespace before cleaning stale sockets
Absolute paths are used to delete old unix sockets. After 3f67731b8e
all processes live in a mount root yard, so if we want to access
absolute paths, we have to change root.

https://travis-ci.org/avagin/criu/builds/197092365
Signed-off-by: Andrei Vagin <avagin@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 14:09:32 +03:00
Kirill Tkhai
096dc1448d files: Use non-block __recv_fds() in recv_fd_from_peer()
Save one syscall and analyze recvmsg() error code to check
that there is no data in the socket.

Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 14:09:32 +03:00
Pavel Emelyanov
15ac89db80 files: Compact the expecten/not-expected branches in recv_fd_from_peer
As a slight side effect even expected fle is checked for being
task_fle(), but that's OK.

Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
Acked-by: Kirill Tkhai <ktkhai@virtuozzo.com>
2017-02-06 14:09:32 +03:00
Pavel Emelyanov
958dbacdf2 files: Turn goto loop into while() one
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
Acked-by: Kirill Tkhai <ktkhai@virtuozzo.com>
2017-02-06 14:09:32 +03:00
Pavel Emelyanov
15676f6dad files: Re-use keep_fd_for_future wider
The tail of the recv_fd_from_peer() matches this routine :)
So call one and rename, since it no longer keeps fd for
future only.

Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
Acked-by: Kirill Tkhai <ktkhai@virtuozzo.com>
2017-02-06 14:09:32 +03:00
Pavel Emelyanov
2ecf202375 files: Fix fle to be checked for being task_fle
We've received tmp, which is not expected one, so check for it.

Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
Acked-by: Kirill Tkhai <ktkhai@virtuozzo.com>
2017-02-06 14:09:31 +03:00
Andrei Vagin
2e8970beda mount: create a mount point for the root mount namespace in the roots yard
These chnages allows us to:
* avoid difference between the root mount namespace and other mount namespaces
* support a read-only root mount
* don't create temporary directories in the root mount

Signed-off-by: Andrei Vagin <avagin@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 14:09:15 +03:00
Kirill Tkhai
b20780d6a0 files: Fix test and set endianess problem
Andrew Vagin reported the problem found by a checker:

    CID 174702 (#1 of 1): Out-of-bounds access (INCOMPATIBLE_CAST)
    incompatible_cast: Pointer &f->raw.counter points to an object whose
    effective type is int (32 bits, signed) but is dereferenced as a wider
    unsigned long (64 bits, unsigned). This may lead to memory corruption.

It looks like, this points to real problem, which may happen on big-endian
platforms. In the code I relay on the fact, that FDS_EVENT_BIT has a small
number and the value, it determines, fits into int type without problems.
But it's correct only for little-endian.

In case of big-endian, if the word size is 8 bytes, then FDS_EVENT value
is in the last bytes, so there is an access to wrong memory.

To fix the problem, I suggest to use little-endian byte order to work
with task_st futex. Then, the bits from 0 to 31 will be in the low adresses,
i.e. in task_st futex. There is new primitives test_and_set_bit_le() and
set_bit_le() borrowed from the linux kernel for that.

This fixes the problem, but I suppose, the checker does not see the problem
so deep, and just compares the types size, so it will fail again.
So, let's enlarge the bit field size to silence it.

Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 14:09:15 +03:00
Kirill Tkhai
74a87aba9f tty: Optimize dependencies check
Iterate over currently unrestored files only.

v4: New

Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 14:09:15 +03:00
Kirill Tkhai
e98c96ed4a files: Merge collect_gen_fd() and collect_used_fd(), and call it unconditionally
Since we keep files of all types in a single list (fds), it's possible
to use only function for that and to call it unconditionally.

v4: New

Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 14:09:15 +03:00
Kirill Tkhai
6072bca687 files: Kill pid parameter of open_fdinfos()
Nobody uses pid, so let's kill it. Also, pass pstree_item parameter
to open_fdinfos() instead of list, as this function operates on fds
list only.

v4: New

Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 14:09:14 +03:00
Kirill Tkhai
2a93e371c2 eventpoll: Use generic list for eventpoll files
Since eventpoll opening time is set by dependencies
(see epoll_not_ready_tfd()), we may safely store them
in generic list.

v4: New

Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 14:09:14 +03:00
Kirill Tkhai
f8143fd99b tty: Use generic list for tty files
Since tty opening order is set by dependencies,
we may safely store all ttys in generic list.

v4: New

Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 14:09:14 +03:00
Kirill Tkhai
f139581a06 files: Move ctty fixup to open_fd()
Fixup ctty right after it's open. It'll need for
merging tty files in single fds list: set ctty
before next fle in list is processed. See next
patch for the details.

v4: New

Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 14:09:14 +03:00
Kirill Tkhai
3432e9891c tty: Set dependencies between masters, slaves and ctty
Firstly masters, then slaves and lastly ctty.

v4: New

Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 14:09:14 +03:00
Kirill Tkhai
a14eedc22d files: Kill struct file_desc_ops::post_open
This make open fds asynchronous. Now we restore them in a poll-style.
Every ->open callback operates like a poll. It returns 1, i.e. "call me again",
if some events have not received yet, or 0, if restoring of a fle
has finished.

We iterate over list of file descriptors and look at its return value.
If there were not progress in restoring of a fle, we sleep on task_st
futex. As all events are sent together with changing task_st, we will
be woken up, when there is a some new work for us.

v6: Add a comment about open method return values

v5: Clear FDS_EVENT every beginning of cycle.
    Use 0, -1 and 1 for successful return error and "again" request.

v4: unix: 1)standalone sockets return ORV_AGAIN after first open
            to reopen fd by generic code
          2)do not call post_open_unix_sk() for !standalone sockets
    inet, epoll: return ORV_AGAIN after first open to reopen fd by generic code
    autofs: iterate used list instead of fds list

Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 14:09:14 +03:00
Kirill Tkhai
839078f8d2 files: Make recv_fd_from_peer() non-block
This breaks everything, because files.c can't have
a deal with this yet. But next patch will teach it.

v5: Use hard-coded 0, -1 and 1 for successful return,
error and "again" request.

v4: tty: merge new_fd assignment to receive_tty()
    and return this function result directly.

Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 14:09:14 +03:00
Kirill Tkhai
96946ee906 files: Add new_fd parameter to file_desc_ops::open()
Return results of work separate: a new fd is in a parameter,
a status is in return value.

In next patches we will use return value "1" to indicate,
that open callback should be called once again, and restore
for this fle has not finished yet. So, we need to be able
to differ file descriptor with number 1 and "again" request.
We do not use negative value like -2 for this purpose,
because we want to allow fles to be served out before
they are completelly restored. So, if a fle is successefuly open,
but it's need one more call of open to complete its restore,
then we return 1 and populate new_fd in not negative value.
See "files: Kill struct file_desc_ops::post_open" for the details.

Also, export open_pipe()

v5: Use 0 and -1 for successful return and error.
v6: Rebase on new criu

Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 14:09:14 +03:00
Kirill Tkhai
7395c48609 files: Set fds event after sending fd to peer
This is need to make receiving a fle non-blocking.
We will sleep on task_st futex instead of this.

v5: Do not set event in send_fd_to_self()

Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 14:09:14 +03:00
Kirill Tkhai
118f1b6c6f eventpoll: Make post_open stage may fail
Currently, it's just an additional check. But later this will be used
int the following way. Return value "1" means, that fle is not ready
for restore, and the caller should recall this method once again later.
See "[PATCH] files: Kill struct file_desc_ops::post_open" for the details.

v5: Use "1" for return

v2: Use generic FLE_OPEN and FLE_RESTORED to determ if a fle is ready

Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 14:09:14 +03:00
Kirill Tkhai
7574028129 files: BUG on reopening already opened fle
This point we think it's a first call of open(),
so the state must be FLE_INITIALIZED.

v6: New

Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 14:09:14 +03:00
Kirill Tkhai
5688335c71 timerfd: Kill post_open stage
Timerfd's post_open state does not depend on another objects,
so it may be safely merged into open stage.

travis-ci: success for Rework file opening scheme to make it asynchronous (rev5)
Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 14:09:13 +03:00
Kirill Tkhai
7888646833 inet: Use task_st futex for notification instead of per-port
The step to make file opening use the only futex.

travis-ci: success for Rework file opening scheme to make it asynchronous (rev5)
Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 14:09:13 +03:00
Kirill Tkhai
baa912bb79 inet: Link sockets in port_type list
This is need for waiting, while port has users, using task_st futex.

travis-ci: success for Rework file opening scheme to make it asynchronous (rev5)
Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 14:09:13 +03:00
Kirill Tkhai
cda1115dba unix: Wait a peer using task_st futex
Use task_st futex notifier instead of per-socket.
The step to make file opening use the only futex.

v2: Use internal bound and listen states instead of generic

travis-ci: success for Rework file opening scheme to make it asynchronous (rev5)
Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 14:09:13 +03:00
Kirill Tkhai
08cd374dac unix: Link connected to peer sockets to its list
This is need for waiting a peer using task_st futex.

travis-ci: success for Rework file opening scheme to make it asynchronous (rev5)
Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 14:09:13 +03:00
Kirill Tkhai
c631276437 files: Add fdinfo_list_entry::stage
Add fle open stages. Set a stage after every operation.

v2: Do not merge filetype specific state with generic.

travis-ci: success for Rework file opening scheme to make it asynchronous (rev5)
Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 14:09:13 +03:00
Kirill Tkhai
735461e1bf files: Implement {set,clear,wait}_fds_event()
The idea is symilar to kernel's wake_up() and wait_event().
One task needs some event. It checks the event has not
happened yet (fle hasn't received, unix peer hasn't bound, etc)
and calls get_fds_event(). Other task makes the event
(sends a fle, binds the peer to a name, etc) and calls set_fds_event().

So, while there is no an event, the first task is sleeping,
and the second wakes it up later:

Task A:      clear_fds_event();
             if (!socket_bound)
                     wait_fds_event(); /* sleep */

Task B:      bind_socket();
             set_fds_event();         /* wake up */

For the details of using see next patches.

v5: Use bit operations.
    Split clear_fds_event from wait function.

v2: Do not wait for foreign transport sock is ready,
as it's guarantied by we create it before CR_STATE_FORKING.

travis-ci: success for Rework file opening scheme to make it asynchronous (rev5)
Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 14:09:13 +03:00
Kirill Tkhai
919df37c25 bits: Add test_and_set_bit()
Borrowed from Linux Kernel

v5: New

Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 14:09:13 +03:00
Kirill Tkhai
66f014d098 pstree: Add task_st bit field
(was "files: Wait transport_fd before sending a fd to peer"
and "pstree: Add task_st futex")

We are going to move to the the single per-task bit field
for notifications about file opening events. Introduce
pstree_item::task_st for that.

v5: Add FDS_EVENT_BIT description.

v2: Do not wait until a peer's socket is created
as it's guarantied by we create it before CR_STATE_FORKING.

travis-ci: success for Rework file opening scheme to make it asynchronous (rev5)
Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 14:09:13 +03:00
Kirill Tkhai
ec1f7cab91 files: Merge states iteration into open_fdinfos()
TTY masters and slaves have no post_open stage,
so these two blocks may safely have their stages merged together.

The third is eventpoll, but two above do not depend
on it (their .post_open do not depend on eventpoll .open).
Unix sockets would have been, but this isn't implemented yet.

So, we may safely execute all stages for different
file types separatelly.

travis-ci: success for Rework file opening scheme to make it asynchronous (rev5)
Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 14:09:13 +03:00
Kirill Tkhai
1181124847 files: Kill fd_open_state::receive_fd stage
Since "receive" stage is used only for slave fds
and nobody depends on slave fds receiving is finished,
we may move it functionality in "post_open" stage.
This just makes slave fds to be received a little bit later.

In other words, only masters have post_open stage,
and only slaves have receive stage. So, in the case of
A and B files:

A->open
B->open
A->recv
A->post_open
B->recv
B->post_open

A->post_open can't depend on B->recv. This follows
just from analyzing of all file types post_open methods.

travis-ci: success for Rework file opening scheme to make it asynchronous (rev5)
Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 14:09:13 +03:00
Kirill Tkhai
ceb6b19c8f files: Kill want_post_open_stage()
Since we are going to get rid of stage at all, kill this function
and call post_open_fd() unconditionally. It can handle the case,
when file_desc_ops::post_open is NULL

travis-ci: success for Rework file opening scheme to make it asynchronous (rev5)
Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 14:09:13 +03:00
Kirill Tkhai
5216439875 files: Kill fd parameter of transport_name_gen()
Since transport socket is per-process, we do not need
fd parameter in this function anymore.

travis-ci: success for Rework file opening scheme to make it asynchronous (rev5)
Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 14:09:13 +03:00
Kirill Tkhai
2f2e46c04b files: Kill file_desc_ops::want_transport()
Since transport fd is per-task, this method is not need anymore.
Kill it.

travis-ci: success for Rework file opening scheme to make it asynchronous (rev5)
Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 14:09:12 +03:00
Kirill Tkhai
9cb52afff4 files: Receive real fd numbers using recv_fd_from_peer()
Move reopen_fd_as() from receive_fd() to this function.
Note, that recv_fd_from_peer() has other callers, and
all of them are OK with receiving real fds (before,
they received arbitrary fds, and they OK with any fds).

travis-ci: success for Rework file opening scheme to make it asynchronous (rev5)
Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 14:09:12 +03:00
Kirill Tkhai
692674b462 files: Make sending fds to peers async
Don't wait for "prepare" stage of every peer's fd. Just
send everything to a peer's global transport socket, and
the peer will find appropriate fd, it needs at the moment.

travis-ci: success for Rework file opening scheme to make it asynchronous (rev5)
Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 14:09:12 +03:00
Kirill Tkhai
a288f3f29d files: Allow to receive further fds
For moving to a single transport socket scheme, we should be able
to receive a fd, which is not need at the moment, but it will
be used in the future. So, we receive a further fd, and then
continue to wait the fd, we really need now.

v3: Delete excess BUG_ON().
    Rename main patch funtion to keep_fd_for_future().
    Rename second funtion to task_fle(), and make it
    have "task" argument.

travis-ci: success for Rework file opening scheme to make it asynchronous (rev5)
Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 14:09:11 +03:00
Kirill Tkhai
6bf2a4338c files: Add fle_init() for initialization new fdinfo_list_entry
No functional changes

v3: Also do real_pid futex initialization

travis-ci: success for Rework file opening scheme to make it asynchronous (rev5)
Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 13:57:35 +03:00
Kirill Tkhai
fa6eb98a5e files: Move derefferencing of TRANSPORT_FD_OFF to send_fd_to_peer()
No functional changes

travis-ci: success for Rework file opening scheme to make it asynchronous (rev5)
Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 13:57:11 +03:00
Kirill Tkhai
dd19510960 files: Move closing fle's transport_fd to recv_fd_from_peer()
No functional changes

travis-ci: success for Rework file opening scheme to make it asynchronous (rev5)
Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 13:57:11 +03:00
Kirill Tkhai
ed55f1ddc0 files: Send/receive fds with pointers on their struct fdinfo_list_entry in receiver
For moving to a single transport socket scheme, we need to be able to differ
fds in receive queue from each other. Add a fle pointer as identifier for that.

v2: Rebase on compel
travis-ci: success for Rework file opening scheme to make it asynchronous (rev5)
Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 13:57:11 +03:00
Kirill Tkhai
06552fa3a2 locks: Mask futexes aligned
System call sys_futex() requires that (from futex(2)):

    "On all platforms, futexes are four-byte integers
     that must be aligned on a four-byte boundary".

travis-ci: success for locks: Mask futexes aligned
Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 13:48:49 +03:00
Kir Kolyshkin
d7f3be8a8e Makefile.install: rm unused vars/target
1. LOGROTATEDIR is not used since commit f4e9a1d
("make: don't install service and logrotate configs").

2. SYSTEMDUNITDIR is not used since commit 10d5e9a
("criu: scripts: remove criu service files").

3. install-tree target was *never* used, makes no sense
to keep it.

While at it, also
 - sort the variables in "export" statement to match
   the order of appearance in Makefile;

 - don't export DESTDIR (it is exported by default as
   it always comes from the make command line);

 - remove unused variable from INSTALL.md.

travis-ci: success for Makefile.install fixes
Signed-off-by: Kir Kolyshkin <kir@openvz.org>
Acked-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 13:48:49 +03:00