]> git.sesse.net Git - bcachefs-tools-debian/blobdiff - libbcachefs/sb-clean.c
Update bcachefs sources to bee7b5a4fa21 bcachefs: Pin btree cache in ram for random...
[bcachefs-tools-debian] / libbcachefs / sb-clean.c
index e151ada1c8bd2db23e31bc1f6f027815585e8ab2..5980ba2563fe9fa159ba9d87fe08ab2dc53a78fb 100644 (file)
@@ -171,33 +171,14 @@ fsck_err:
        return ERR_PTR(ret);
 }
 
-static struct jset_entry *jset_entry_init(struct jset_entry **end, size_t size)
-{
-       struct jset_entry *entry = *end;
-       unsigned u64s = DIV_ROUND_UP(size, sizeof(u64));
-
-       memset(entry, 0, u64s * sizeof(u64));
-       /*
-        * The u64s field counts from the start of data, ignoring the shared
-        * fields.
-        */
-       entry->u64s = cpu_to_le16(u64s - 1);
-
-       *end = vstruct_next(*end);
-       return entry;
-}
-
 void bch2_journal_super_entries_add_common(struct bch_fs *c,
                                           struct jset_entry **end,
                                           u64 journal_seq)
 {
-       struct bch_dev *ca;
-       unsigned i, dev;
-
        percpu_down_read(&c->mark_lock);
 
        if (!journal_seq) {
-               for (i = 0; i < ARRAY_SIZE(c->usage); i++)
+               for (unsigned i = 0; i < ARRAY_SIZE(c->usage); i++)
                        bch2_fs_usage_acc_to_base(c, i);
        } else {
                bch2_fs_usage_acc_to_base(c, journal_seq & JOURNAL_BUF_MASK);
@@ -210,7 +191,7 @@ void bch2_journal_super_entries_add_common(struct bch_fs *c,
 
                u->entry.type   = BCH_JSET_ENTRY_usage;
                u->entry.btree_id = BCH_FS_USAGE_inodes;
-               u->v            = cpu_to_le64(c->usage_base->nr_inodes);
+               u->v            = cpu_to_le64(c->usage_base->b.nr_inodes);
        }
 
        {
@@ -223,7 +204,7 @@ void bch2_journal_super_entries_add_common(struct bch_fs *c,
                u->v            = cpu_to_le64(atomic64_read(&c->key_version));
        }
 
-       for (i = 0; i < BCH_REPLICAS_MAX; i++) {
+       for (unsigned i = 0; i < BCH_REPLICAS_MAX; i++) {
                struct jset_entry_usage *u =
                        container_of(jset_entry_init(end, sizeof(*u)),
                                     struct jset_entry_usage, entry);
@@ -234,8 +215,8 @@ void bch2_journal_super_entries_add_common(struct bch_fs *c,
                u->v            = cpu_to_le64(c->usage_base->persistent_reserved[i]);
        }
 
-       for (i = 0; i < c->replicas.nr; i++) {
-               struct bch_replicas_entry *e =
+       for (unsigned i = 0; i < c->replicas.nr; i++) {
+               struct bch_replicas_entry_v1 *e =
                        cpu_replicas_entry(&c->replicas, i);
                struct jset_entry_data_usage *u =
                        container_of(jset_entry_init(end, sizeof(*u) + e->nr_devs),
@@ -247,7 +228,7 @@ void bch2_journal_super_entries_add_common(struct bch_fs *c,
                              "embedded variable length struct");
        }
 
-       for_each_member_device(ca, c, dev) {
+       for_each_member_device(c, ca) {
                unsigned b = sizeof(struct jset_entry_dev_usage) +
                        sizeof(struct jset_entry_dev_usage_type) * BCH_DATA_NR;
                struct jset_entry_dev_usage *u =
@@ -255,10 +236,9 @@ void bch2_journal_super_entries_add_common(struct bch_fs *c,
                                     struct jset_entry_dev_usage, entry);
 
                u->entry.type = BCH_JSET_ENTRY_dev_usage;
-               u->dev = cpu_to_le32(dev);
-               u->buckets_ec           = cpu_to_le64(ca->usage_base->buckets_ec);
+               u->dev = cpu_to_le32(ca->dev_idx);
 
-               for (i = 0; i < BCH_DATA_NR; i++) {
+               for (unsigned i = 0; i < BCH_DATA_NR; i++) {
                        u->d[i].buckets = cpu_to_le64(ca->usage_base->d[i].buckets);
                        u->d[i].sectors = cpu_to_le64(ca->usage_base->d[i].sectors);
                        u->d[i].fragmented = cpu_to_le64(ca->usage_base->d[i].fragmented);
@@ -267,7 +247,7 @@ void bch2_journal_super_entries_add_common(struct bch_fs *c,
 
        percpu_up_read(&c->mark_lock);
 
-       for (i = 0; i < 2; i++) {
+       for (unsigned i = 0; i < 2; i++) {
                struct jset_entry_clock *clock =
                        container_of(jset_entry_init(end, sizeof(*clock)),
                                     struct jset_entry_clock, entry);
@@ -332,8 +312,6 @@ int bch2_fs_mark_dirty(struct bch_fs *c)
 
        mutex_lock(&c->sb_lock);
        SET_BCH_SB_CLEAN(c->disk_sb.sb, false);
-
-       bch2_sb_maybe_downgrade(c);
        c->disk_sb.sb->features[0] |= cpu_to_le64(BCH_SB_FEATURES_ALWAYS);
 
        ret = bch2_write_super(c);