summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2019-03-11 16:25:42 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2023-10-22 17:08:17 -0400
commit94d290e40c255ea854ec1050dbf9a8b60340a749 (patch)
treef4c52236948f085cbed8a92c0cf19930f0cc6336 /fs
parent9a12b1b0978837f19a5ccc2312aeae535d8289a4 (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.h1
-rw-r--r--fs/bcachefs/btree_update_leaf.c10
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