diff --git a/hooks/unmount-namespace.c b/hooks/unmount-namespace.c index 488c9ccc8..86513ac9b 100644 --- a/hooks/unmount-namespace.c +++ b/hooks/unmount-namespace.c @@ -38,6 +38,33 @@ #include /* getmntent, endmntent */ #include /* errno */ +#include <../src/config.h> + +#if IS_BIONIC +#include <../src/include/lxcmntent.h> +#else +#include +#endif + +#ifndef O_PATH +#define O_PATH 010000000 +#endif + +/* Define setns() if missing from the C library */ +#ifndef HAVE_SETNS +static inline int setns(int fd, int nstype) +{ +#ifdef __NR_setns + return syscall(__NR_setns, fd, nstype); +#elif defined(__NR_set_ns) + return syscall(__NR_set_ns, fd, nstype); +#else + errno = ENOSYS; + return -1; +#endif +} +#endif + struct mount { char *src; /* currently not used */ char *dst;