]> git.sesse.net Git - bcachefs-tools-debian/blobdiff - libbcachefs/journal_sb.c
Disable pristine-tar option in gbp.conf, since there is no pristine-tar branch.
[bcachefs-tools-debian] / libbcachefs / journal_sb.c
index 5be7882342e0f1d2b26e0ab80c9c08d4d77e9a39..156691c203bef6ceeeb9b57bd3a66544db1f4491 100644 (file)
@@ -2,8 +2,8 @@
 
 #include "bcachefs.h"
 #include "journal_sb.h"
-#include "darray.h"
 
+#include <linux/darray.h>
 #include <linux/sort.h>
 
 /* BCH_SB_FIELD_journal: */
@@ -21,7 +21,7 @@ static int bch2_sb_journal_validate(struct bch_sb *sb,
                                    struct printbuf *err)
 {
        struct bch_sb_field_journal *journal = field_to_type(f, journal);
-       struct bch_member *m = bch2_sb_get_members(sb)->members + sb->dev_idx;
+       struct bch_member m = bch2_sb_member_get(sb, sb->dev_idx);
        int ret = -BCH_ERR_invalid_sb_journal;
        unsigned nr;
        unsigned i;
@@ -33,7 +33,7 @@ static int bch2_sb_journal_validate(struct bch_sb *sb,
 
        b = kmalloc_array(nr, sizeof(u64), GFP_KERNEL);
        if (!b)
-               return -ENOMEM;
+               return -BCH_ERR_ENOMEM_sb_journal_validate;
 
        for (i = 0; i < nr; i++)
                b[i] = le64_to_cpu(journal->buckets[i]);
@@ -45,15 +45,15 @@ static int bch2_sb_journal_validate(struct bch_sb *sb,
                goto err;
        }
 
-       if (b[0] < le16_to_cpu(m->first_bucket)) {
+       if (b[0] < le16_to_cpu(m.first_bucket)) {
                prt_printf(err, "journal bucket %llu before first bucket %u",
-                      b[0], le16_to_cpu(m->first_bucket));
+                      b[0], le16_to_cpu(m.first_bucket));
                goto err;
        }
 
-       if (b[nr - 1] >= le64_to_cpu(m->nbuckets)) {
+       if (b[nr - 1] >= le64_to_cpu(m.nbuckets)) {
                prt_printf(err, "journal bucket %llu past end of device (nbuckets %llu)",
-                      b[nr - 1], le64_to_cpu(m->nbuckets));
+                      b[nr - 1], le64_to_cpu(m.nbuckets));
                goto err;
        }
 
@@ -104,7 +104,7 @@ static int bch2_sb_journal_v2_validate(struct bch_sb *sb,
                                    struct printbuf *err)
 {
        struct bch_sb_field_journal_v2 *journal = field_to_type(f, journal_v2);
-       struct bch_member *m = bch2_sb_get_members(sb)->members + sb->dev_idx;
+       struct bch_member m = bch2_sb_member_get(sb, sb->dev_idx);
        int ret = -BCH_ERR_invalid_sb_journal;
        unsigned nr;
        unsigned i;
@@ -116,7 +116,7 @@ static int bch2_sb_journal_v2_validate(struct bch_sb *sb,
 
        b = kmalloc_array(nr, sizeof(*b), GFP_KERNEL);
        if (!b)
-               return -ENOMEM;
+               return -BCH_ERR_ENOMEM_sb_journal_v2_validate;
 
        for (i = 0; i < nr; i++) {
                b[i].start = le64_to_cpu(journal->d[i].start);
@@ -130,15 +130,15 @@ static int bch2_sb_journal_v2_validate(struct bch_sb *sb,
                goto err;
        }
 
-       if (b[0].start < le16_to_cpu(m->first_bucket)) {
+       if (b[0].start < le16_to_cpu(m.first_bucket)) {
                prt_printf(err, "journal bucket %llu before first bucket %u",
-                      b[0].start, le16_to_cpu(m->first_bucket));
+                      b[0].start, le16_to_cpu(m.first_bucket));
                goto err;
        }
 
-       if (b[nr - 1].end > le64_to_cpu(m->nbuckets)) {
+       if (b[nr - 1].end > le64_to_cpu(m.nbuckets)) {
                prt_printf(err, "journal bucket %llu past end of device (nbuckets %llu)",
-                      b[nr - 1].end - 1, le64_to_cpu(m->nbuckets));
+                      b[nr - 1].end - 1, le64_to_cpu(m.nbuckets));
                goto err;
        }
 
@@ -194,23 +194,23 @@ int bch2_journal_buckets_to_sb(struct bch_fs *c, struct bch_dev *ca,
                if (buckets[i] + 1 != buckets[i + 1])
                        nr_compacted++;
 
-       j = bch2_sb_resize_journal_v2(&ca->disk_sb,
+       j = bch2_sb_field_resize(&ca->disk_sb, journal_v2,
                         (sizeof(*j) + sizeof(j->d[0]) * nr_compacted) / sizeof(u64));
        if (!j)
                return -BCH_ERR_ENOSPC_sb_journal;
 
        bch2_sb_field_delete(&ca->disk_sb, BCH_SB_FIELD_journal);
 
-       j->d[dst].start = le64_to_cpu(buckets[0]);
-       j->d[dst].nr    = le64_to_cpu(1);
+       j->d[dst].start = cpu_to_le64(buckets[0]);
+       j->d[dst].nr    = cpu_to_le64(1);
 
        for (i = 1; i < nr; i++) {
                if (buckets[i] == buckets[i - 1] + 1) {
                        le64_add_cpu(&j->d[dst].nr, 1);
                } else {
                        dst++;
-                       j->d[dst].start = le64_to_cpu(buckets[i]);
-                       j->d[dst].nr    = le64_to_cpu(1);
+                       j->d[dst].start = cpu_to_le64(buckets[i]);
+                       j->d[dst].nr    = cpu_to_le64(1);
                }
        }