From: Colin Patrick McCabe Date: Wed, 24 Nov 2010 05:45:47 +0000 (-0800) Subject: osd: ReplicatedPG::do_op: error on read-from-lost X-Git-Tag: v0.24~89^2~10 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ad4e5f36d4239767d43fe0c6bfb8f02b15a02053;p=ceph.git osd: ReplicatedPG::do_op: error on read-from-lost Signed-off-by: Colin McCabe --- diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index 54f1c92934f7..0769ebd9ed21 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;