diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2023-03-06 05:29:12 -0500 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-10-22 17:09:56 -0400 |
commit | 2640faeb1741db94b717d2678f6cd644f90e3061 (patch) | |
tree | e22afd0d0eb1186592e9caaace85aac0f50e466b /fs/bcachefs/buckets.c | |
parent | 511b629aca6007a8784a6005a023dd166ffaa787 (diff) | |
download | lwn-2640faeb1741db94b717d2678f6cd644f90e3061.tar.gz lwn-2640faeb1741db94b717d2678f6cd644f90e3061.zip |
bcachefs: Journal resize fixes
- Fix a sleeping-in-atomic bug due to calling
bch2_journal_buckets_to_sb() under the journal lock.
- Additionally, now we mark buckets as journal buckets before adding
them to the journal in memory and the superblock. This ensures that
if we crash part way through we'll never be writing to journal
buckets that aren't marked correctly.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/buckets.c')
-rw-r--r-- | fs/bcachefs/buckets.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/bcachefs/buckets.c b/fs/bcachefs/buckets.c index c7139dd8e1dc..19b4e2bde399 100644 --- a/fs/bcachefs/buckets.c +++ b/fs/bcachefs/buckets.c @@ -1855,7 +1855,7 @@ static int __bch2_trans_mark_metadata_bucket(struct btree_trans *trans, if (IS_ERR(a)) return PTR_ERR(a); - if (a->v.data_type && a->v.data_type != type) { + if (a->v.data_type && type && a->v.data_type != type) { bch2_fsck_err(c, FSCK_CAN_IGNORE|FSCK_NEED_FSCK, "bucket %llu:%llu gen %u different types of data in same bucket: %s, %s\n" "while marking %s", |