diff options
author | Alex Auvolat <alex@adnab.me> | 2021-02-23 20:25:15 +0100 |
---|---|---|
committer | Alex Auvolat <alex@adnab.me> | 2021-02-23 20:25:15 +0100 |
commit | bf25c95fe2fda4ded2e3ca14499e3991e7243532 (patch) | |
tree | 889ced32b11186e69caba5af740b26de3e3b0659 /src/model/block_ref_table.rs | |
parent | 28bc967c837c38ba416d9b19fd1ae96cbb292074 (diff) | |
download | garage-bf25c95fe2fda4ded2e3ca14499e3991e7243532.tar.gz garage-bf25c95fe2fda4ded2e3ca14499e3991e7243532.zip |
Make updated() be a sync function that doesn't fail
Diffstat (limited to 'src/model/block_ref_table.rs')
-rw-r--r-- | src/model/block_ref_table.rs | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/model/block_ref_table.rs b/src/model/block_ref_table.rs index 5a7d9aa1..9ab67737 100644 --- a/src/model/block_ref_table.rs +++ b/src/model/block_ref_table.rs @@ -1,10 +1,8 @@ -use async_trait::async_trait; use serde::{Deserialize, Serialize}; use std::sync::Arc; use garage_util::background::*; use garage_util::data::*; -use garage_util::error::Error; use garage_table::*; @@ -42,24 +40,26 @@ pub struct BlockRefTable { pub block_manager: Arc<BlockManager>, } -#[async_trait] impl TableSchema for BlockRefTable { type P = Hash; type S = UUID; type E = BlockRef; type Filter = DeletedFilter; - async fn updated(&self, old: Option<Self::E>, new: Option<Self::E>) -> Result<(), Error> { + fn updated(&self, old: Option<Self::E>, new: Option<Self::E>) { let block = &old.as_ref().or(new.as_ref()).unwrap().block; let was_before = old.as_ref().map(|x| !x.deleted).unwrap_or(false); let is_after = new.as_ref().map(|x| !x.deleted).unwrap_or(false); if is_after && !was_before { - self.block_manager.block_incref(block)?; + if let Err(e) = self.block_manager.block_incref(block) { + warn!("block_incref failed for block {:?}: {}", block, e); + } } if was_before && !is_after { - self.block_manager.block_decref(block)?; + if let Err(e) = self.block_manager.block_decref(block) { + warn!("block_decref failed for block {:?}: {}", block, e); + } } - Ok(()) } fn matches_filter(entry: &Self::E, filter: &Self::Filter) -> bool { |