struct btree *b = btree_path_node(path, level);
int want = __btree_lock_want(path, level);
- if (!is_btree_node(path, level))
- goto fail;
-
if (race_fault())
goto fail;
return true;
}
fail:
- if (b != ERR_PTR(-BCH_ERR_no_btree_node_cached) &&
- b != ERR_PTR(-BCH_ERR_no_btree_node_init) &&
- b != ERR_PTR(-BCH_ERR_no_btree_node_up))
- trace_btree_node_relock_fail(trans, _RET_IP_, path, level);
+ trace_btree_node_relock_fail(trans, _RET_IP_, path, level);
return false;
}
btree_node_locked_type(path, level) != __btree_lock_want(path, level));
return likely(btree_node_locked(path, level)) ||
- __bch2_btree_node_relock(trans, path, level);
+ (!IS_ERR_OR_NULL(path->l[level].b) &&
+ __bch2_btree_node_relock(trans, path, level));
}
/* upgrade */