From fd1b84975b960d5e42963bed2c18b8c63d8abce7 Mon Sep 17 00:00:00 2001 From: Kent Overstreet Date: Sun, 27 Feb 2022 16:35:20 -0500 Subject: [PATCH] Update bcachefs sources to ffad51ba45 bcachefs: Fix a use after free --- .bcachefs_revision | 2 +- libbcachefs/btree_update_leaf.c | 7 ++++++- 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,