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 '{:?}' - {}",