]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/os/seastore/backref: tolerate removing non-existing backrefs 46396/head
authorXuehan Xu <xxhdx1985126@gmail.com>
Wed, 25 May 2022 10:45:02 +0000 (18:45 +0800)
committerXuehan Xu <xxhdx1985126@gmail.com>
Sat, 4 Jun 2022 08:57:44 +0000 (16:57 +0800)
Signed-off-by: Xuehan Xu <xxhdx1985126@gmail.com>
src/crimson/os/seastore/backref/btree_backref_manager.cc
src/crimson/os/seastore/backref_manager.h

index 9c0f2ba52412515502342b33ae437dfe488ea155..5371351ef69b2e2e06798d8daaa4abd3aae04a45 100644 (file)
@@ -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{
index f3f661086d59ceb4dd1cb864009be8911e97ae21..6e98f11b4f373c9e3981706c1c45eba5bace487b 100644 (file)
@@ -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;
   };
 
   /**