summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.bcachefs_revision2
-rw-r--r--libbcachefs/btree_update_leaf.c7
2 files changed, 7 insertions, 2 deletions
diff --git a/.bcachefs_revision b/.bcachefs_revision
index 6f4750b7..b1e0bf83 100644
--- a/.bcachefs_revision
+++ b/.bcachefs_revision
@@ -1 +1 @@
-04036b491089aeb4bac5d796ae1716d019564f7a
+ffad51ba45f8c0785bbb2e2903715d825a8eea9a
diff --git a/libbcachefs/btree_update_leaf.c b/libbcachefs/btree_update_leaf.c
index 19cb6e1e..ee978f33 100644
--- a/libbcachefs/btree_update_leaf.c
+++ b/libbcachefs/btree_update_leaf.c
@@ -387,7 +387,12 @@ btree_key_can_insert_cached(struct btree_trans *trans,
*/
trace_trans_restart_key_cache_key_realloced(trans->fn, _RET_IP_,
path->btree_id, &path->pos);
- return btree_trans_restart(trans);
+ /*
+ * Not using btree_trans_restart() because we can't unlock here, we have
+ * write locks held:
+ */
+ trans->restarted = true;
+ return -EINTR;
}
static inline void do_btree_insert_one(struct btree_trans *trans,