]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
utils: switch to has_fs_type()
authorChristian Brauner <christian.brauner@ubuntu.com>
Tue, 1 Aug 2017 21:33:43 +0000 (23:33 +0200)
committerChristian Brauner <christian.brauner@ubuntu.com>
Tue, 1 Aug 2017 23:37:02 +0000 (01:37 +0200)
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
src/lxc/utils.c
src/lxc/utils.h

index 88692035f4b58796e9c5ec33175e88d654d07fb8..d3b0fdc5d2de96862ae5e6b9af32d018b96f70cd 100644 (file)
@@ -42,7 +42,6 @@
 #include <sys/prctl.h>
 #include <sys/stat.h>
 #include <sys/types.h>
-#include <sys/vfs.h>
 #include <sys/wait.h>
 
 #include "log.h"
@@ -183,22 +182,24 @@ static int _recursive_rmdir(char *dirname, dev_t pdev,
        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;
 }
 
index addfb7a054bc28ff652bac4b8e17680e77fdf317..fc0e5c01c4c76d50c38aa3bafb2ea7b2c340b8ea 100644 (file)
@@ -34,6 +34,7 @@
 #include <stdbool.h>
 #include <unistd.h>
 #include <linux/loop.h>
+#include <linux/magic.h>
 #include <sys/syscall.h>
 #include <sys/types.h>
 #include <sys/vfs.h>