syscall_wrappers: add pivot_root()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
This commit is contained in:
Christian Brauner 2018-09-30 12:41:34 +02:00
parent 2a2d77c356
commit 6b3d24d716
No known key found for this signature in database
GPG Key ID: 8EB056D53EECB12D
2 changed files with 15 additions and 15 deletions

View File

@ -74,6 +74,7 @@
#include "start.h"
#include "storage.h"
#include "storage/overlay.h"
#include "syscall_wrappers.h"
#include "terminal.h"
#include "utils.h"
@ -124,21 +125,6 @@ thread_local struct lxc_conf *current_config;
struct lxc_conf *current_config;
#endif
/* Define pivot_root() if missing from the C library */
#ifndef HAVE_PIVOT_ROOT
static int pivot_root(const char *new_root, const char *put_old)
{
#ifdef __NR_pivot_root
return syscall(__NR_pivot_root, new_root, put_old);
#else
errno = ENOSYS;
return -1;
#endif
}
#else
extern int pivot_root(const char *new_root, const char *put_old);
#endif
char *lxchook_names[NUM_LXC_HOOKS] = {
"pre-start",
"pre-mount",

View File

@ -48,4 +48,18 @@ static inline long __keyctl(int cmd, unsigned long arg2, unsigned long arg3,
#define keyctl __keyctl
#endif
#if !HAVE_PIVOT_ROOT
static int pivot_root(const char *new_root, const char *put_old)
{
#ifdef __NR_pivot_root
return syscall(__NR_pivot_root, new_root, put_old);
#else
errno = ENOSYS;
return -1;
#endif
}
#else
extern int pivot_root(const char *new_root, const char *put_old);
#endif
#endif /* __LXC_SYSCALL_WRAPPER_H */