]> git.sesse.net Git - bcachefs-tools-debian/blobdiff - libbcachefs/super.c
Update bcachefs sources to fbb669e9de bcachefs: Kill btree_node_iter_large
[bcachefs-tools-debian] / libbcachefs / super.c
index aa3adbf2babf11a95f62acbe3ad969b8c2358ea9..43689bb85e3293db317ddd6cbcd3b5bc74b8e705 100644 (file)
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * bcachefs setup/teardown code, and some metadata io - read a superblock and
  * figure out what to do with it.
@@ -308,6 +309,7 @@ void bch2_fs_read_only(struct bch_fs *c)
         */
        percpu_ref_kill(&c->writes);
 
+       cancel_work_sync(&c->ec_stripe_delete_work);
        cancel_delayed_work(&c->pd_controllers_update);
 
        /*
@@ -397,6 +399,8 @@ static int bch2_fs_read_write_late(struct bch_fs *c)
 
        schedule_delayed_work(&c->pd_controllers_update, 5 * HZ);
 
+       schedule_work(&c->ec_stripe_delete_work);
+
        return 0;
 }
 
@@ -490,6 +494,7 @@ static void bch2_fs_free(struct bch_fs *c)
        bch2_fs_ec_exit(c);
        bch2_fs_encryption_exit(c);
        bch2_fs_io_exit(c);
+       bch2_fs_btree_iter_exit(c);
        bch2_fs_btree_cache_exit(c);
        bch2_fs_journal_exit(&c->journal);
        bch2_io_clock_exit(&c->io_clock[WRITE]);
@@ -501,7 +506,7 @@ static void bch2_fs_free(struct bch_fs *c)
        free_percpu(c->usage[0]);
        kfree(c->usage_base);
        free_percpu(c->pcpu);
-       mempool_exit(&c->btree_iters_pool);
+       mempool_exit(&c->large_bkey_pool);
        mempool_exit(&c->btree_bounce_pool);
        bioset_exit(&c->btree_bio);
        mempool_exit(&c->btree_interior_update_pool);
@@ -730,9 +735,9 @@ static struct bch_fs *bch2_fs_alloc(struct bch_sb *sb, struct bch_opts opts)
        if (bch2_fs_init_fault("fs_alloc"))
                goto err;
 
-       iter_size = sizeof(struct btree_node_iter_large) +
+       iter_size = sizeof(struct sort_iter) +
                (btree_blocks(c) + 1) * 2 *
-               sizeof(struct btree_node_iter_set);
+               sizeof(struct sort_iter_set);
 
        if (!(c->wq = alloc_workqueue("bcachefs",
                                WQ_FREEZABLE|WQ_MEM_RECLAIM|WQ_CPU_INTENSIVE, 1)) ||
@@ -754,15 +759,13 @@ static struct bch_fs *bch2_fs_alloc(struct bch_sb *sb, struct bch_opts opts)
            !(c->pcpu = alloc_percpu(struct bch_fs_pcpu)) ||
            mempool_init_kvpmalloc_pool(&c->btree_bounce_pool, 1,
                                        btree_bytes(c)) ||
-           mempool_init_kmalloc_pool(&c->btree_iters_pool, 1,
-                       sizeof(struct btree_iter) * BTREE_ITER_MAX +
-                       sizeof(struct btree_insert_entry) *
-                       (BTREE_ITER_MAX + 4)) ||
+           mempool_init_kmalloc_pool(&c->large_bkey_pool, 1, 2048) ||
            bch2_io_clock_init(&c->io_clock[READ]) ||
            bch2_io_clock_init(&c->io_clock[WRITE]) ||
            bch2_fs_journal_init(&c->journal) ||
            bch2_fs_replicas_init(c) ||
            bch2_fs_btree_cache_init(c) ||
+           bch2_fs_btree_iter_init(c) ||
            bch2_fs_io_init(c) ||
            bch2_fs_encryption_init(c) ||
            bch2_fs_compress_init(c) ||
@@ -1089,7 +1092,6 @@ static struct bch_dev *__bch2_dev_alloc(struct bch_fs *c,
 
        writepoint_init(&ca->copygc_write_point, BCH_DATA_USER);
 
-       spin_lock_init(&ca->freelist_lock);
        bch2_dev_copygc_init(ca);
 
        INIT_WORK(&ca->io_error_work, bch2_io_error_work);