From ad4e5f36d4239767d43fe0c6bfb8f02b15a02053 Mon Sep 17 00:00:00 2001 From: Colin Patrick McCabe Date: Tue, 23 Nov 2010 21:45:47 -0800 Subject: [PATCH] osd: ReplicatedPG::do_op: error on read-from-lost Signed-off-by: Colin McCabe --- src/osd/ReplicatedPG.cc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index 54f1c92934f76..0769ebd9ed210 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -265,6 +265,12 @@ void ReplicatedPG::do_op(MOSDOp *op) osd->reply_op_error(op, r); return; } + + if ((op->may_read()) && (obc->obs.oi.lost)) { + // This object is lost. Reading from it returns an error. + osd->reply_op_error(op, -ENFILE); + return; + } bool ok; dout(10) << "do_op mode is " << mode << dendl; -- 2.39.5