diff --git a/src/node/chainstate.cpp b/src/node/chainstate.cpp index 7cb452a910f..ce1128d9f69 100644 --- a/src/node/chainstate.cpp +++ b/src/node/chainstate.cpp @@ -113,14 +113,13 @@ std::optional LoadChainstate(bool fReset, assert(chainstate->m_chain.Tip() != nullptr); } } - } - if (!fReset) { - LOCK(cs_main); - auto chainstates{chainman.GetAll()}; - if (std::any_of(chainstates.begin(), chainstates.end(), - [](const CChainState* cs) EXCLUSIVE_LOCKS_REQUIRED(cs_main) { return cs->NeedsRedownload(); })) { - return ChainstateLoadingError::ERROR_BLOCKS_WITNESS_INSUFFICIENTLY_VALIDATED; + if (!fReset) { + auto chainstates{chainman.GetAll()}; + if (std::any_of(chainstates.begin(), chainstates.end(), + [](const CChainState* cs) EXCLUSIVE_LOCKS_REQUIRED(cs_main) { return cs->NeedsRedownload(); })) { + return ChainstateLoadingError::ERROR_BLOCKS_WITNESS_INSUFFICIENTLY_VALIDATED; + } } }