summaryrefslogtreecommitdiff
path: root/libbcachefs/journal.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2022-04-04 13:48:45 -0400
committerKent Overstreet <kent.overstreet@gmail.com>2022-04-04 13:48:45 -0400
commit498874fdb71973c1856f35414bd607e58be16790 (patch)
tree9befebc09f4ebd856788d5fd5ac4ffecbd7698e9 /libbcachefs/journal.c
parent32aabbc4e547592f957de7d4b093986e55981085 (diff)
Update bcachefs sources to 91e6c3e0d5 bcachefs: Gap buffer for journal keys
Diffstat (limited to 'libbcachefs/journal.c')
-rw-r--r--libbcachefs/journal.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/libbcachefs/journal.c b/libbcachefs/journal.c
index 505e8367..d01b1cd4 100644
--- a/libbcachefs/journal.c
+++ b/libbcachefs/journal.c
@@ -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: */