summaryrefslogtreecommitdiffstats
path: root/fs/bcachefs/btree_update.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2023-09-10 16:24:02 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2023-10-22 17:10:12 -0400
commitc872afa22420cbbeb8c78656926928b9e2abae18 (patch)
tree4639e173bb895c6c377c50757cd45dfbfe702903 /fs/bcachefs/btree_update.c
parent5b7fbdcd5b04b618178d6339e36435997ef6b086 (diff)
downloadlinux-c872afa22420cbbeb8c78656926928b9e2abae18.tar.gz
linux-c872afa22420cbbeb8c78656926928b9e2abae18.tar.bz2
linux-c872afa22420cbbeb8c78656926928b9e2abae18.zip
bcachefs: Fix bch2_propagate_key_to_snapshot_leaves()
When we handle a transaction restart in a nested context, we need to return -BCH_ERR_transaction_restart_nested because we invalidated the outer context's iterators and locks. bch2_propagate_key_to_snapshot_leaves() wasn't doing this, this patch fixes it to use trans_was_restarted(). Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/btree_update.c')
-rw-r--r--fs/bcachefs/btree_update.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/fs/bcachefs/btree_update.c b/fs/bcachefs/btree_update.c
index 880ce7431894..7368e1e00f53 100644
--- a/fs/bcachefs/btree_update.c
+++ b/fs/bcachefs/btree_update.c
@@ -777,9 +777,7 @@ err:
}
bch2_trans_iter_exit(trans, &iter);
- if (!ret && trans_was_restarted(trans, restart_count))
- ret = -BCH_ERR_transaction_restart_nested;
- return ret;
+ return ret ?: trans_was_restarted(trans, restart_count);
}
/*