perf(ecstore): avoid successful listing name clone

This commit is contained in:
马登山
2026-08-22 11:08:04 +08:00
parent 09fac9a52b
commit bb2330451a
+13 -12
View File
@@ -814,19 +814,20 @@ fn resolve_decommission_partial_listing_entry(
set_index: usize, set_index: usize,
) -> Result<MetaCacheEntry> { ) -> Result<MetaCacheEntry> {
let candidate_count = entries.as_ref().iter().flatten().count(); let candidate_count = entries.as_ref().iter().flatten().count();
let candidate = entries.as_ref().iter().flatten().map(|entry| entry.name.clone()).next(); if let Some(entry) = entries.resolve(resolver) {
return Ok(entry);
}
entries.resolve(resolver).ok_or_else(|| { let candidate = entries.as_ref().iter().flatten().map(|entry| entry.name.as_str()).next();
decommission_unresolved_listing_error( Err(decommission_unresolved_listing_error(
bucket, bucket,
prefix, prefix,
candidate.as_deref(), candidate,
candidate_count, candidate_count,
disk_error_count, disk_error_count,
pool_index, pool_index,
set_index, set_index,
) ))
})
} }
async fn record_decommission_entry_error( async fn record_decommission_entry_error(