]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: Using objects_read_local instead of objects_read_sync
authorCallum James <callum.james@ibm.com>
Tue, 21 Apr 2026 10:08:16 +0000 (11:08 +0100)
committerJon Bailey <jonathan.bailey1@ibm.com>
Thu, 28 May 2026 14:15:51 +0000 (15:15 +0100)
Signed-off-by: Callum James <callum.james@ibm.com>
src/osd/ECBackend.cc
src/osd/ECSwitch.h
src/test/osd/TestBackendBasics.cc

index 00b0811e58cee9dbd508e38573318dfd41bd3e7d..588494d7f74d3714f58fc972c99d98e4cbe70bd6 100644 (file)
@@ -1043,7 +1043,7 @@ int ECBackend::objects_read_local(
     bufferlist *bl) {
 
   if (!sinfo.supports_direct_reads()) {
-    return -EOPNOTSUPP; // For exec calls
+    return -EOPNOTSUPP;
   }
 
   // Cannot return EAGAIN here: the op would get dropped.  This check must have
@@ -1052,7 +1052,6 @@ int ECBackend::objects_read_local(
 
   auto [shard_offset, shard_len] = extent_to_shard_extent(off, len);
 
-
   dout(20) << __func__ << " Submitting sync read: "
       << " hoid=" << hoid
       << " shard_offset=" << shard_offset
@@ -1061,7 +1060,6 @@ int ECBackend::objects_read_local(
       << " primary=" << switcher->is_primary()
       << dendl;
 
-
   return switcher->store->read(switcher->ch,
           ghobject_t(hoid, ghobject_t::NO_GEN, get_parent()->whoami_shard().shard),
           shard_offset,
index 100b1c38aa07c31abd14b104117192acd84b5b03..cc0f0f389226d307a6b8e4322bf90c65c776d307 100644 (file)
@@ -279,7 +279,7 @@ public:
     if (is_optimized()) {
       return optimized.objects_read_local(hoid, off, len, op_flags, bl);
     }
-    return legacy.objects_read_local(hoid, off, len, op_flags, bl);
+    return -EOPNOTSUPP;
   }
 
   int objects_readv_sync(const hobject_t &hoid,
index 7e89f71279227f0854092bf01ead937eb6a570aa..4b35557902375ced91beed85098f125a5e228293 100644 (file)
@@ -354,6 +354,11 @@ TEST_P(TestBackendBasics, DirectRead) {
     EXPECT_GE(read_result, 0)
       << param.label << " direct read to shard " << shard_id << " should complete successfully";
 
+    if (obj_name == "test_direct_read_EC_ISA_Opt_k4m2_su4k_4k")
+    {
+      std::cout << obj_name << " is the test of interest" << std::endl;
+    }
+
     // For direct reads, we expect to get back only the data for this shard
     // which is one stripe_unit
     ASSERT_EQ(shard_data.length(), stripe_unit)