summaryrefslogtreecommitdiff
path: root/libbcachefs/super.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2021-12-21 23:13:52 -0500
committerKent Overstreet <kent.overstreet@gmail.com>2021-12-25 18:48:46 -0500
commitad031731727d4239351afeebf675f069a289beb3 (patch)
tree6b5dba68f20c6861d90f5706bf1e822a94b84ed6 /libbcachefs/super.c
parent00f49f23b4c37865618c74a5cb3a65308a9c511d (diff)
Update bcachefs sources to aa540d47ab bcachefs: Option improvements
Diffstat (limited to 'libbcachefs/super.c')
-rw-r--r--libbcachefs/super.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/libbcachefs/super.c b/libbcachefs/super.c
index 505e559b..58bc2903 100644
--- a/libbcachefs/super.c
+++ b/libbcachefs/super.c
@@ -754,10 +754,13 @@ static struct bch_fs *bch2_fs_alloc(struct bch_sb *sb, struct bch_opts opts)
SET_BCH_SB_JOURNAL_RECLAIM_DELAY(sb, 100);
c->opts = bch2_opts_default;
- bch2_opts_apply(&c->opts, bch2_opts_from_sb(sb));
+ ret = bch2_opts_from_sb(&c->opts, sb);
+ if (ret)
+ goto err;
+
bch2_opts_apply(&c->opts, opts);
- c->block_bits = ilog2(c->opts.block_size);
+ c->block_bits = ilog2(block_sectors(c));
c->btree_foreground_merge_threshold = BTREE_FOREGROUND_MERGE_THRESHOLD(c);
if (bch2_fs_init_fault("fs_alloc")) {
@@ -869,7 +872,7 @@ static void print_mount_opts(struct bch_fs *c)
const struct bch_option *opt = &bch2_opt_table[i];
u64 v = bch2_opt_get_by_id(&c->opts, i);
- if (!(opt->mode & OPT_MOUNT))
+ if (!(opt->flags & OPT_MOUNT))
continue;
if (v == bch2_opt_get_by_id(&bch2_opts_default, i))
@@ -995,7 +998,7 @@ static const char *bch2_dev_may_add(struct bch_sb *sb, struct bch_fs *c)
if (!sb_mi)
return "Invalid superblock: member info area missing";
- if (le16_to_cpu(sb->block_size) != c->opts.block_size)
+ if (le16_to_cpu(sb->block_size) != block_sectors(c))
return "mismatched block size";
if (le16_to_cpu(sb_mi->members[sb->dev_idx].bucket_size) <