From 85f5609bcd513b305e5590a26dce1d15f09ffdb9 Mon Sep 17 00:00:00 2001 From: Yehuda Sadeh Date: Tue, 19 May 2009 16:34:38 -0700 Subject: [PATCH] osd: return immediately after -EAGAIN --- src/osd/ReplicatedPG.cc | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index 9d23a828f38de..1785f44141ebc 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -686,6 +686,8 @@ int ReplicatedPG::do_read_ops(MOSDOp *op, OpContext& ctx, result = osd->get_class(cname, info.pgid, op, &cls); if (result) { dout(10) << "rdcall class " << cname << " does not exist" << dendl; + if (result == -EAGAIN) + return result; } else { bufferlist outdata; ClassHandler::ClassMethod *method = cls->get_method(mname.c_str()); @@ -888,6 +890,8 @@ void ReplicatedPG::op_read(MOSDOp *op) // do it. result = do_read_ops(op, ctx, bp, data, &data_off); + if (result == -EAGAIN) + return; } done: @@ -912,10 +916,8 @@ void ReplicatedPG::op_read(MOSDOp *op) } - if (result != -EAGAIN) { - osd->messenger->send_message(reply, op->get_orig_source_inst()); - delete op; - } + osd->messenger->send_message(reply, op->get_orig_source_inst()); + delete op; } -- 2.39.5