diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2019-03-11 16:25:42 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-10-22 17:08:17 -0400 |
commit | 94d290e40c255ea854ec1050dbf9a8b60340a749 (patch) | |
tree | f4c52236948f085cbed8a92c0cf19930f0cc6336 /fs | |
parent | 9a12b1b0978837f19a5ccc2312aeae535d8289a4 (diff) |
bcachefs: drop btree_insert->did_work
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/bcachefs/btree_update.h | 1 | ||||
-rw-r--r-- | fs/bcachefs/btree_update_leaf.c | 10 |
2 files changed, 6 insertions, 5 deletions
diff --git a/fs/bcachefs/btree_update.h b/fs/bcachefs/btree_update.h index df2e24a0688d..3e6a616b8182 100644 --- a/fs/bcachefs/btree_update.h +++ b/fs/bcachefs/btree_update.h @@ -30,7 +30,6 @@ struct btree_insert { struct journal_preres journal_preres; u64 *journal_seq; unsigned flags; - bool did_work; unsigned short nr; struct btree_insert_entry *entries; diff --git a/fs/bcachefs/btree_update_leaf.c b/fs/bcachefs/btree_update_leaf.c index 4ab4dfcf843d..21822bda67fc 100644 --- a/fs/bcachefs/btree_update_leaf.c +++ b/fs/bcachefs/btree_update_leaf.c @@ -585,7 +585,6 @@ got_journal_res: break; } } - trans->did_work = true; trans_for_each_entry(trans, i) do_btree_insert_one(trans, i); @@ -739,8 +738,7 @@ err: * BTREE_INSERT_NOUNLOCK means don't unlock _after_ successful btree * update; if we haven't done anything yet it doesn't apply */ - if (!trans->did_work) - flags &= ~BTREE_INSERT_NOUNLOCK; + flags &= ~BTREE_INSERT_NOUNLOCK; switch (ret) { case BTREE_INSERT_BTREE_NODE_FULL: @@ -756,8 +754,12 @@ err: * XXX: * split -> btree node merging (of parent node) might still drop * locks when we're not passing it BTREE_INSERT_NOUNLOCK + * + * we don't want to pass BTREE_INSERT_NOUNLOCK to split as that + * will inhibit merging - but we don't have a reliable way yet + * (do we?) of checking if we dropped locks in this path */ - if (!ret && !trans->did_work) + if (!ret) goto retry; #endif |