Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
return ret;
}
+
+bool is_fs_type(const struct statfs *fs, fs_type_magic magic_val)
+{
+ return (fs->f_type == (fs_type_magic)magic_val);
+}
+
+bool has_fs_type(const char *path, fs_type_magic magic_val)
+{
+ bool has_type;
+ int ret;
+ struct statfs sb;
+
+ ret = statfs(path, &sb);
+ if (ret < 0)
+ return false;
+
+ has_type = is_fs_type(&sb, magic_val);
+ if (!has_type && magic_val == RAMFS_MAGIC)
+ WARN("When the ramfs it a tmpfs statfs() might report tmpfs");
+
+ return has_type;
+}
#include <linux/loop.h>
#include <sys/syscall.h>
#include <sys/types.h>
+#include <sys/vfs.h>
#include "initutils.h"
/* Re-alllocate a pointer, do not fail */
void *must_realloc(void *orig, size_t sz);
+/* __typeof__ should be safe to use with all compilers. */
+typedef __typeof__(((struct statfs *)NULL)->f_type) fs_type_magic;
+bool has_fs_type(const char *path, fs_type_magic magic_val);
+bool is_fs_type(const struct statfs *fs, fs_type_magic magic_val);
+
#endif /* __LXC_UTILS_H */