From 4a83e91173307b4870b46dee55e912d9614b9a92 Mon Sep 17 00:00:00 2001 From: Xuehan Xu Date: Wed, 25 May 2022 18:45:02 +0800 Subject: [PATCH] crimson/os/seastore/backref: tolerate removing non-existing backrefs Signed-off-by: Xuehan Xu --- src/crimson/os/seastore/backref/btree_backref_manager.cc | 5 +++-- src/crimson/os/seastore/backref_manager.h | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/crimson/os/seastore/backref/btree_backref_manager.cc b/src/crimson/os/seastore/backref/btree_backref_manager.cc index 9c0f2ba524125..5371351ef69b2 100644 --- a/src/crimson/os/seastore/backref/btree_backref_manager.cc +++ b/src/crimson/os/seastore/backref/btree_backref_manager.cc @@ -376,8 +376,9 @@ BtreeBackrefManager::remove_mapping( -> remove_mapping_ret { if (iter.is_end() || iter.get_key() != addr) { LOG_PREFIX(BtreeBackrefManager::remove_mapping); - ERRORT("paddr={} doesn't exist", c.trans, addr); - return crimson::ct_error::enoent::make(); + DEBUGT("paddr={} doesn't exist", c.trans, addr); + return remove_mapping_iertr::make_ready_future< + remove_mapping_result_t>(remove_mapping_result_t()); } auto ret = remove_mapping_result_t{ diff --git a/src/crimson/os/seastore/backref_manager.h b/src/crimson/os/seastore/backref_manager.h index f3f661086d59c..6e98f11b4f373 100644 --- a/src/crimson/os/seastore/backref_manager.h +++ b/src/crimson/os/seastore/backref_manager.h @@ -128,9 +128,9 @@ public: const uint64_t max) = 0; struct remove_mapping_result_t { - paddr_t offset; - extent_len_t len; - laddr_t laddr; + paddr_t offset = P_ADDR_NULL; + extent_len_t len = 0; + laddr_t laddr = L_ADDR_NULL; }; /** -- 2.39.5