]> git.sesse.net Git - bcachefs-tools-debian/blobdiff - libbcachefs/journal.c
Update bcachefs sources to 91e6c3e0d5 bcachefs: Gap buffer for journal keys
[bcachefs-tools-debian] / libbcachefs / journal.c
index 505e8367b5f2c867a7e2eb94ff74a39ca8457f4e..d01b1cd4000d48e8fad2d69e0494613f2a5d9dcc 100644 (file)
@@ -964,6 +964,7 @@ int bch2_set_nr_journal_buckets(struct bch_fs *c, struct bch_dev *ca,
 int bch2_dev_journal_alloc(struct bch_dev *ca)
 {
        unsigned nr;
+       int ret;
 
        if (dynamic_fault("bcachefs:add:journal_alloc"))
                return -ENOMEM;
@@ -980,7 +981,15 @@ int bch2_dev_journal_alloc(struct bch_dev *ca)
                     min(1 << 13,
                         (1 << 24) / ca->mi.bucket_size));
 
-       return __bch2_set_nr_journal_buckets(ca, nr, true, NULL);
+       if (ca->fs)
+               mutex_lock(&ca->fs->sb_lock);
+
+       ret = __bch2_set_nr_journal_buckets(ca, nr, true, NULL);
+
+       if (ca->fs)
+               mutex_unlock(&ca->fs->sb_lock);
+
+       return ret;
 }
 
 /* startup/shutdown: */