summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2022-02-27 16:35:20 -0500
committerKent Overstreet <kent.overstreet@gmail.com>2022-02-27 16:35:20 -0500
commitfd1b84975b960d5e42963bed2c18b8c63d8abce7 (patch)
tree3d26878af8bcfe521135c7346f17a5e349fa25b4
parent03498f946430c1fbb411f94af7f9a366f4a7cd51 (diff)
Update bcachefs sources to ffad51ba45 bcachefs: Fix a use after free
-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,