From: Kent Overstreet Date: Mon, 11 Mar 2019 20:25:42 +0000 (-0400) Subject: bcachefs: drop btree_insert->did_work X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=94d290e40c255ea854ec1050dbf9a8b60340a749;p=linux.git bcachefs: drop btree_insert->did_work Signed-off-by: Kent Overstreet --- diff --git a/fs/bcachefs/btree_update.h b/fs/bcachefs/btree_update.h index df2e24a0688df..3e6a616b81822 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 4ab4dfcf843d4..21822bda67fc1 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