#include <sys/prctl.h>
#include <sys/stat.h>
#include <sys/types.h>
-#include <sys/vfs.h>
#include <sys/wait.h>
#include "log.h"
return failed ? -1 : 0;
}
-/* we have two different magic values for overlayfs, yay */
+/* We have two different magic values for overlayfs, yay. */
+#ifndef OVERLAYFS_SUPER_MAGIC
#define OVERLAYFS_SUPER_MAGIC 0x794c764f
+#endif
+
+#ifndef OVERLAY_SUPER_MAGIC
#define OVERLAY_SUPER_MAGIC 0x794c7630
-/*
- * In overlayfs, st_dev is unreliable. so on overlayfs we don't do
- * the lxc_rmdir_onedev()
+#endif
+
+/* In overlayfs, st_dev is unreliable. So on overlayfs we don't do the
+ * lxc_rmdir_onedev()
*/
static bool is_native_overlayfs(const char *path)
{
- struct statfs sb;
-
- if (statfs(path, &sb) < 0)
- return false;
- if (sb.f_type == OVERLAYFS_SUPER_MAGIC ||
- sb.f_type == OVERLAY_SUPER_MAGIC)
+ if (has_fs_type(path, OVERLAY_SUPER_MAGIC) ||
+ has_fs_type(path, OVERLAYFS_SUPER_MAGIC))
return true;
+
return false;
}