From de924abbe7a62bdeb6baaba0f2fe2d1c64ef888b Mon Sep 17 00:00:00 2001 From: Kent Overstreet Date: Thu, 21 Oct 2021 14:33:31 -0400 Subject: [PATCH] bcachefs: Fix error handling in bch2_trans_extent_merging The back merging case wasn't returning errors correctly. Signed-off-by: Kent Overstreet --- fs/bcachefs/btree_update_leaf.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/fs/bcachefs/btree_update_leaf.c b/fs/bcachefs/btree_update_leaf.c index b344979ca7ed1..22fce150781e8 100644 --- a/fs/bcachefs/btree_update_leaf.c +++ b/fs/bcachefs/btree_update_leaf.c @@ -1058,7 +1058,7 @@ static int bch2_trans_update_extent(struct btree_trans *trans, if (bch2_bkey_maybe_mergable(k.k, &insert->k)) { ret = extent_front_merge(trans, &iter, k, &insert, flags); if (ret) - goto out; + goto err; } goto next; @@ -1178,8 +1178,11 @@ next: goto out; } - if (bch2_bkey_maybe_mergable(&insert->k, k.k)) - extent_back_merge(trans, &iter, insert, k); + if (bch2_bkey_maybe_mergable(&insert->k, k.k)) { + ret = extent_back_merge(trans, &iter, insert, k); + if (ret) + goto err; + } out: if (!bkey_deleted(&insert->k)) { /* -- 2.30.2