syscall_wrappers: add pivot_root()

parent 2a2d77c3
...@@ -74,6 +74,7 @@ ...@@ -74,6 +74,7 @@
#include "start.h" #include "start.h"
#include "storage.h" #include "storage.h"
#include "storage/overlay.h" #include "storage/overlay.h"
#include "syscall_wrappers.h"
#include "terminal.h" #include "terminal.h"
#include "utils.h" #include "utils.h"
...@@ -124,21 +125,6 @@ thread_local struct lxc_conf *current_config; ...@@ -124,21 +125,6 @@ thread_local struct lxc_conf *current_config;
struct lxc_conf *current_config; struct lxc_conf *current_config;
#endif #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] = { char *lxchook_names[NUM_LXC_HOOKS] = {
"pre-start", "pre-start",
"pre-mount", "pre-mount",
......
...@@ -48,4 +48,18 @@ static inline long __keyctl(int cmd, unsigned long arg2, unsigned long arg3, ...@@ -48,4 +48,18 @@ static inline long __keyctl(int cmd, unsigned long arg2, unsigned long arg3,
#define keyctl __keyctl #define keyctl __keyctl
#endif #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 */ #endif /* __LXC_SYSCALL_WRAPPER_H */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment