From: Radoslaw Zarzynski Date: Mon, 5 Aug 2019 11:58:06 +0000 (+0200) Subject: crimson/osd: differentiate ENOENT during do_osd_call(). X-Git-Tag: v15.1.0~1774^2~10 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=7631691f9fd3947dab0c016b35d383b5c1a0a215;p=ceph-ci.git crimson/osd: differentiate ENOENT during do_osd_call(). Signed-off-by: Radoslaw Zarzynski --- diff --git a/src/crimson/osd/ops_executer.cc b/src/crimson/osd/ops_executer.cc index 87effe33e54..bd63f6ac279 100644 --- a/src/crimson/osd/ops_executer.cc +++ b/src/crimson/osd/ops_executer.cc @@ -28,10 +28,6 @@ namespace ceph::osd { seastar::future<> OpsExecuter::do_op_call(OSDOp& osd_op) { - if (!os->exists) { - throw ceph::osd::object_not_found(); - } - std::string cname, mname; ceph::bufferlist indata; try { @@ -67,6 +63,10 @@ seastar::future<> OpsExecuter::do_op_call(OSDOp& osd_op) } const auto flags = method->get_flags(); + if (!os->exists && (flags & CLS_METHOD_WR) == 0) { + throw ceph::osd::object_not_found{}; + } + #if 0 if (flags & CLS_METHOD_WR) { ctx->user_modify = true;