From 8e3c22b5954667e837ec63ddea77470dd4f0f259 Mon Sep 17 00:00:00 2001 From: junxiang Mu <1948535941@qq.com> Date: Fri, 25 Apr 2025 08:59:39 +0000 Subject: [PATCH] fix Signed-off-by: junxiang Mu <1948535941@qq.com> --- ecstore/src/heal/data_scanner.rs | 14 ++++++++------ ecstore/src/heal/data_usage_cache.rs | 6 +----- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/ecstore/src/heal/data_scanner.rs b/ecstore/src/heal/data_scanner.rs index ff4fe850b..b1b110a54 100644 --- a/ecstore/src/heal/data_scanner.rs +++ b/ecstore/src/heal/data_scanner.rs @@ -696,8 +696,8 @@ impl FolderScanner { } } } - if found_objects && *GLOBAL_IsErasure.read().await { - // If we found an object in erasure mode, we skip subdirs (only datadirs)... + // if found_objects && *GLOBAL_IsErasure.read().await { + if found_objects { break 'outer; } @@ -1029,11 +1029,13 @@ impl FolderScanner { #[tracing::instrument(level = "info", skip(into, folder_scanner))] async fn scan(folder: &CachedFolder, into: &mut DataUsageEntry, folder_scanner: &mut FolderScanner) { - if into.compacted { - *into = DataUsageEntry::default(); - } + let mut dst = if !into.compacted { + DataUsageEntry::default() + } else { + into.clone() + }; - if Box::pin(folder_scanner.scan_folder(folder, into)).await.is_err() { + if Box::pin(folder_scanner.scan_folder(folder, &mut dst)).await.is_err() { return; } if !into.compacted { diff --git a/ecstore/src/heal/data_usage_cache.rs b/ecstore/src/heal/data_usage_cache.rs index 11814c3ef..2dad9f55b 100644 --- a/ecstore/src/heal/data_usage_cache.rs +++ b/ecstore/src/heal/data_usage_cache.rs @@ -21,7 +21,7 @@ use tokio::time::sleep; use tracing::warn; use super::data_scanner::{SizeSummary, DATA_SCANNER_FORCE_COMPACT_AT_FOLDERS}; -use super::data_usage::{BucketTargetUsageInfo, BucketUsageInfo, DataUsageInfo, DATA_USAGE_ROOT}; +use super::data_usage::{BucketTargetUsageInfo, BucketUsageInfo, DataUsageInfo}; // DATA_USAGE_BUCKET_LEN must be length of ObjectsHistogramIntervals pub const DATA_USAGE_BUCKET_LEN: usize = 11; @@ -858,9 +858,5 @@ impl DataUsageHash { } pub fn hash_path(data: &str) -> DataUsageHash { - let mut data = data; - if data != DATA_USAGE_ROOT { - data = data.trim_matches('/'); - } DataUsageHash(Path::new(&data).clean().to_string_lossy().to_string()) }