From a2285525be3b8c7bf9b245f559eac05be23e5342 Mon Sep 17 00:00:00 2001 From: Dominik Csapak Date: Fri, 23 Oct 2020 16:32:31 +0200 Subject: [PATCH] backup/datastore: count still bad chunks for the status we want to show the user that there are still bad chunks after a garbage collection Signed-off-by: Dominik Csapak --- src/api2/types/mod.rs | 3 +++ src/backup/chunk_store.rs | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/api2/types/mod.rs b/src/api2/types/mod.rs index f97db557..1b9a305f 100644 --- a/src/api2/types/mod.rs +++ b/src/api2/types/mod.rs @@ -587,6 +587,8 @@ pub struct GarbageCollectionStatus { pub pending_chunks: usize, /// Number of chunks marked as .bad by verify that have been removed by GC. pub removed_bad: usize, + /// Number of chunks still marked as .bad after garbage collection. + pub still_bad: usize, } impl Default for GarbageCollectionStatus { @@ -602,6 +604,7 @@ impl Default for GarbageCollectionStatus { pending_bytes: 0, pending_chunks: 0, removed_bad: 0, + still_bad: 0, } } } diff --git a/src/backup/chunk_store.rs b/src/backup/chunk_store.rs index 96c46efb..b7556f8a 100644 --- a/src/backup/chunk_store.rs +++ b/src/backup/chunk_store.rs @@ -354,9 +354,11 @@ impl ChunkStore { }, Err(nix::Error::Sys(nix::errno::Errno::ENOENT)) => { // chunk hasn't been rewritten yet, keep .bad file + status.still_bad += 1; }, Err(err) => { // some other error, warn user and keep .bad file around too + status.still_bad += 1; crate::task_warn!( worker, "error during stat on '{:?}' - {}", -- 2.39.2