]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/osd: treat OI-not-existing cases as enoent
authorXuehan Xu <xuxuehan@qianxin.com>
Thu, 16 Apr 2026 05:47:18 +0000 (13:47 +0800)
committerXuehan Xu <xuxuehan@qianxin.com>
Mon, 25 May 2026 08:55:32 +0000 (16:55 +0800)
This is consistent with classic osds

Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
src/crimson/osd/pg_backend.cc
src/crimson/osd/pg_backend.h

index d0c9ff412d5f9d5aa516189131a607eded11a5c5..4e093a39d59e02e40d27689fc6757c7a7d08ffb2 100644 (file)
@@ -113,7 +113,7 @@ PGBackend::decode_metadata2(
       oid);
     return tl::unexpected(
       ErrorHelper<load_metadata_ertr>::to_error(
-        crimson::ct_error::object_corrupted::make()));
+        crimson::ct_error::enoent::make()));
   }
 
   if (oid.is_head()) {
@@ -170,7 +170,9 @@ PGBackend::load_metadata(const hobject_t& oid)
           return ErrorHelper<load_metadata_ertr>\
            ::from_error<PGBackend::loaded_object_md_t::ref>(maybe_decoded.error());
         }
-      }, crimson::ct_error::enoent::handle([oid] {
+      }
+    ).handle_error_interruptible(
+      crimson::ct_error::enoent::handle([oid] {
         logger().debug(
           "load_metadata: object {} doesn't exist, returning empty metadata",
           oid);
@@ -181,7 +183,9 @@ PGBackend::load_metadata(const hobject_t& oid)
               false),
             oid.is_head() ? (new crimson::osd::SnapSetContext(oid)) : nullptr
           });
-      }));
+      }),
+      load_metadata_iertr::pass_further{}
+    );
 }
 
 static inline bool _read_verify_data(
index bda7d73ac1b9059b4676d907a12cdd68192c6053..d41b1bf767607fb3885f3ee5737d84bd61252c23 100644 (file)
@@ -50,7 +50,8 @@ protected:
 
 public:
   using load_metadata_ertr = crimson::errorator<
-    crimson::ct_error::object_corrupted>;
+    crimson::ct_error::object_corrupted,
+    crimson::ct_error::enoent>;
   using load_metadata_iertr =
     ::crimson::interruptible::interruptible_errorator<
       ::crimson::osd::IOInterruptCondition,