chiark / gitweb /
missing: use btrfs.h instead of defining our own btrfs structures
[elogind.git] / src / readahead / readahead-collect.c
index 02ecbe56c9be8a03db9d53e38a8574d2aae5d215..658c230d65e985cbdd43a753ac3f2a515562110d 100644 (file)
@@ -38,6 +38,7 @@
 #include <sys/mman.h>
 #include <linux/fs.h>
 #include <linux/fiemap.h>
+#include <linux/btrfs.h>
 #include <sys/ioctl.h>
 #include <sys/vfs.h>
 #include <getopt.h>
@@ -479,8 +480,9 @@ static int collect(const char *root) {
                                         }
                                         entry->bin = (entrytime - starttime) / 2000000;
 
-                                        if ((k = hashmap_put(files, p, entry)) < 0) {
-                                                log_warning("set_put() failed: %s", strerror(-k));
+                                        k = hashmap_put(files, p, entry);
+                                        if (k < 0) {
+                                                log_warning("hashmap_put() failed: %s", strerror(-k));
                                                 free(p);
                                         }
                                 }
@@ -505,7 +507,7 @@ done:
         on_ssd = fs_on_ssd(root) > 0;
         log_debug("On SSD: %s", yes_no(on_ssd));
 
-        on_btrfs = statfs(root, &sfs) >= 0 && sfs.f_type == (__SWORD_TYPE) BTRFS_SUPER_MAGIC;
+        on_btrfs = statfs(root, &sfs) >= 0 && F_TYPE_CMP(sfs.f_type, BTRFS_SUPER_MAGIC);
         log_debug("On btrfs: %s", yes_no(on_btrfs));
 
         if (asprintf(&pack_fn_new, "%s/.readahead.new", root) < 0) {