]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: ReplicatedPG::do_op: error on read-from-lost
authorColin Patrick McCabe <cmccabe@alumni.cmu.edu>
Wed, 24 Nov 2010 05:45:47 +0000 (21:45 -0800)
committerColin Patrick McCabe <cmccabe@alumni.cmu.edu>
Tue, 30 Nov 2010 23:48:47 +0000 (15:48 -0800)
Signed-off-by: Colin McCabe <colinm@hq.newdream.net>
src/osd/ReplicatedPG.cc

index 54f1c92934f76dd82ba9c50478d129e435297fca..0769ebd9ed210ea8271677d98d43620496586525 100644 (file)
@@ -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;