diff options
Diffstat (limited to 'libbcachefs/super.c')
-rw-r--r-- | libbcachefs/super.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/libbcachefs/super.c b/libbcachefs/super.c index 19f96921..6cbfc801 100644 --- a/libbcachefs/super.c +++ b/libbcachefs/super.c @@ -460,14 +460,11 @@ void bch2_fs_stop(struct bch_fs *c) bch2_fs_exit(c); } -#define alloc_bucket_pages(gfp, ca) \ - ((void *) __get_free_pages(__GFP_ZERO|gfp, ilog2(bucket_pages(ca)))) - static struct bch_fs *bch2_fs_alloc(struct bch_sb *sb, struct bch_opts opts) { struct bch_sb_field_members *mi; struct bch_fs *c; - unsigned i, iter_size, journal_entry_bytes; + unsigned i, iter_size; c = kzalloc(sizeof(struct bch_fs), GFP_KERNEL); if (!c) @@ -555,8 +552,6 @@ static struct bch_fs *bch2_fs_alloc(struct bch_sb *sb, struct bch_opts opts) iter_size = (btree_blocks(c) + 1) * 2 * sizeof(struct btree_node_iter_set); - journal_entry_bytes = 512U << BCH_SB_JOURNAL_ENTRY_SIZE(sb); - if (!(c->wq = alloc_workqueue("bcachefs", WQ_FREEZABLE|WQ_MEM_RECLAIM|WQ_HIGHPRI, 1)) || !(c->copygc_wq = alloc_workqueue("bcache_copygc", @@ -583,7 +578,7 @@ static struct bch_fs *bch2_fs_alloc(struct bch_sb *sb, struct bch_opts opts) bdi_setup_and_register(&c->bdi, "bcachefs") || bch2_io_clock_init(&c->io_clock[READ]) || bch2_io_clock_init(&c->io_clock[WRITE]) || - bch2_fs_journal_init(&c->journal, journal_entry_bytes) || + bch2_fs_journal_init(&c->journal) || bch2_fs_btree_init(c) || bch2_fs_encryption_init(c) || bch2_fs_compress_init(c) || @@ -974,7 +969,7 @@ static void bch2_dev_free(struct bch_dev *ca) free_percpu(ca->sectors_written); bioset_exit(&ca->replica_set); free_percpu(ca->usage_percpu); - free_pages((unsigned long) ca->disk_buckets, ilog2(bucket_pages(ca))); + kvpfree(ca->disk_buckets, bucket_bytes(ca)); kfree(ca->prio_buckets); kfree(ca->bio_prio); vfree(ca->buckets); @@ -1144,7 +1139,7 @@ static int bch2_dev_alloc(struct bch_fs *c, unsigned dev_idx) ca->mi.nbuckets)) || !(ca->prio_buckets = kzalloc(sizeof(u64) * prio_buckets(ca) * 2, GFP_KERNEL)) || - !(ca->disk_buckets = alloc_bucket_pages(GFP_KERNEL, ca)) || + !(ca->disk_buckets = kvpmalloc(bucket_bytes(ca), GFP_KERNEL)) || !(ca->usage_percpu = alloc_percpu(struct bch_dev_usage)) || !(ca->bio_prio = bio_kmalloc(GFP_NOIO, bucket_pages(ca))) || bioset_init(&ca->replica_set, 4, |