]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/osd: return directly when obc not exists. 46564/head
authorchunmei-liu <chunmei.liu@intel.com>
Wed, 8 Jun 2022 08:01:43 +0000 (01:01 -0700)
committerchunmei-liu <chunmei.liu@intel.com>
Wed, 8 Jun 2022 22:03:23 +0000 (15:03 -0700)
if goest into do_osd_ops, will set osd_op.rval, but it
is not reuqired in some tests, this follow classic ceph do_op logic.

Signed-off-by: chunmei-liu <chunmei.liu@intel.com>
src/crimson/osd/osd_operations/client_request.cc

index b35dbff1609ea28d59d71854fbab974868f51ee4..c5c0659d5dcc48010229ce51f24dda24cf79908d 100644 (file)
@@ -285,6 +285,10 @@ ClientRequest::do_process(Ref<PG>& pg, crimson::osd::ObjectContextRef obc)
     return reply_op_error(pg, -EINVAL);
   }
 
+  if (!obc->obs.exists && !op_info.may_write()) {
+    return reply_op_error(pg, -ENOENT);
+  }
+
   return pg->do_osd_ops(m, obc, op_info).safe_then_unpack_interruptible(
     [this, pg](auto submitted, auto all_completed) mutable {
     return submitted.then_interruptible([this, pg] {