m_is_optimized_ec = m_pool.info.allows_ecoptimizations();
// EC-related:
- if (!m_is_replicated && m_pg.get_ec_supports_crc_encode_decode()) {
+ if (!m_is_replicated && m_pg.get_ec_supports_crc_encode_decode()
+ && m_depth == scrub_level_t::deep) {
m_ec_digest_map_size = m_pg.get_ec_sinfo().get_k_plus_m();
}
this_chunk->m_ec_digest_map.clear();
if (auth_selection.auth_oi.version != eversion_t() &&
- m_pg.get_ec_supports_crc_encode_decode()) {
+ !m_is_replicated && m_pg.get_ec_supports_crc_encode_decode() &&
+ m_depth == scrub_level_t::deep) {
uint64_t auth_length = this_chunk->received_maps[auth_selection.auth_shard]
.objects.at(ho)
.size;
shard_id_set available_shards;
for (const auto& [srd, smap] : this_chunk->received_maps) {
- if (!m_is_replicated && m_pg.get_ec_supports_crc_encode_decode() &&
- smap.objects.contains(ho)) {
+ if (smap.objects.contains(ho)) {
uint64_t shard_length = smap.objects.at(ho).size;
available_shards.insert(srd.shard);
std::list<pg_shard_t> auth_list; // out "param" to
std::set<pg_shard_t> object_errors; // be returned
std::size_t digest_size = 0;
- if (!m_is_replicated && m_pg.get_ec_supports_crc_encode_decode()) {
+ if (!m_is_replicated && m_pg.get_ec_supports_crc_encode_decode() &&
+ m_depth == scrub_level_t::deep) {
digest_size = m_pg.get_ec_sinfo().get_k_plus_m();
}
shard_id_map<bufferlist> digests{digest_size};
ho.has_snapset(),
srd);
- if (!m_is_replicated && m_pg.get_ec_supports_crc_encode_decode()) {
+ if (!m_is_replicated && m_pg.get_ec_supports_crc_encode_decode()
+ && m_depth == scrub_level_t::deep) {
// Create map containing all data shards except current shard and all
// parity shards Decode the current data shard Add to set<shard_id>
// incorrectly_decoded_shards if the shard did not decode
<< dendl;
}
- if (!m_is_replicated && m_pg.get_ec_supports_crc_encode_decode()) {
+ if (!m_is_replicated && m_pg.get_ec_supports_crc_encode_decode()
+ && m_depth == scrub_level_t::deep) {
set<shard_id_t> incorrectly_decoded_shards;
shard_id_set shards;