From 65d9f536fa3e8ad302798194b85d18632ed329b9 Mon Sep 17 00:00:00 2001 From: Kent Overstreet Date: Thu, 9 Jan 2020 18:30:05 -0500 Subject: [PATCH] bcachefs: Improve tracepoints slightly in commit path Signed-off-by: Kent Overstreet Signed-off-by: Kent Overstreet --- fs/bcachefs/btree_update_leaf.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/fs/bcachefs/btree_update_leaf.c b/fs/bcachefs/btree_update_leaf.c index 0c6c2b5b15b3..baf97d785774 100644 --- a/fs/bcachefs/btree_update_leaf.c +++ b/fs/bcachefs/btree_update_leaf.c @@ -706,10 +706,18 @@ int __bch2_trans_commit(struct btree_trans *trans) trans_trigger_run = false; trans_for_each_update(trans, i) { - /* we know trans->nounlock won't be set here: */ - if (unlikely(!(i->iter->locks_want < 1 - ? __bch2_btree_iter_upgrade(i->iter, 1) - : i->iter->uptodate <= BTREE_ITER_NEED_PEEK))) { + if (unlikely(i->iter->uptodate > BTREE_ITER_NEED_PEEK)) { + trace_trans_restart_traverse(trans->ip); + ret = -EINTR; + goto out; + } + + /* + * We're not using bch2_btree_iter_upgrade here because + * we know trans->nounlock can't be set: + */ + if (unlikely(i->iter->locks_want < 1 && + !__bch2_btree_iter_upgrade(i->iter, 1))) { trace_trans_restart_upgrade(trans->ip); ret = -EINTR; goto out;