diff --git a/ecstore/src/heal/data_scanner.rs b/ecstore/src/heal/data_scanner.rs index 268af734..e74792c1 100644 --- a/ecstore/src/heal/data_scanner.rs +++ b/ecstore/src/heal/data_scanner.rs @@ -1029,13 +1029,11 @@ impl FolderScanner { #[tracing::instrument(level = "info", skip(into, folder_scanner))] async fn scan(folder: &CachedFolder, into: &mut DataUsageEntry, folder_scanner: &mut FolderScanner) { - let mut dst = if into.compacted { - DataUsageEntry::default() - } else { - into.clone() - }; + if !into.compacted { + *into = DataUsageEntry::default(); + } - if Box::pin(folder_scanner.scan_folder(folder, &mut dst)).await.is_err() { + if Box::pin(folder_scanner.scan_folder(folder, into)).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 de5b7373..11814c3e 100644 --- a/ecstore/src/heal/data_usage_cache.rs +++ b/ecstore/src/heal/data_usage_cache.rs @@ -541,7 +541,7 @@ impl DataUsageCache { match self.find(path) { Some(root) => { if root.children.is_empty() { - return None; + return Some(root); } let mut flat = self.flatten(&root); if flat.replication_stats.is_some() && flat.replication_stats.as_ref().unwrap().empty() {