From f85858a4db107dce5e4742e4b7d86bd8fcb44942 Mon Sep 17 00:00:00 2001 From: dawn <90008@gaze.systems> Date: Sun, 15 Mar 2026 14:01:55 +0300 Subject: [PATCH] [db] do the whole gc check in read_sync --- src/db/gc.rs | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/db/gc.rs b/src/db/gc.rs index 211546c..a33b367 100644 --- a/src/db/gc.rs +++ b/src/db/gc.rs @@ -41,19 +41,19 @@ impl CompactionFilter for BlocksGcFilter { return Ok(Verdict::Keep); } - let count = self + Ok(self .refcounts - .read_sync(item.key().as_ref(), |_, v| *v) - .unwrap_or(0); - - #[cfg(debug_assertions)] - if let Ok(cid) = cid::Cid::read_bytes(item.key().as_ref()) { - tracing::debug!(cid = %cid, count, "BlocksGcFilter checking block"); - } - - Ok((count <= 0) - .then_some(Verdict::Destroy) - .unwrap_or(Verdict::Keep)) + .read_sync(item.key().as_ref(), |_, count| { + #[cfg(debug_assertions)] + if let Ok(cid) = cid::Cid::read_bytes(item.key().as_ref()) { + tracing::debug!(cid = %cid, count, "BlocksGcFilter checking block"); + } + + (*count <= 0) + .then_some(Verdict::Destroy) + .unwrap_or(Verdict::Keep) + }) + .unwrap_or(Verdict::Destroy)) } } -- 2.51.2