]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: clean up ReplicatedPG leaks and comments
authorGreg Farnum <gregf@hq.newdream.net>
Fri, 11 Jun 2010 17:25:51 +0000 (10:25 -0700)
committerGreg Farnum <gregf@hq.newdream.net>
Mon, 9 Aug 2010 21:17:54 +0000 (14:17 -0700)
src/osd/ReplicatedPG.cc

index 5a0b33b89b96fe6466e4660a8c4dc9532cd120f5..f894ebd2b3c9d5fe6304cc6b655af4b36c2aff23 100644 (file)
@@ -246,7 +246,8 @@ void ReplicatedPG::do_op(MOSDOp *op)
   bool can_create = op->may_write();
   int r = find_object_context(op->get_oid(), op->get_snapid(), &obc, can_create);
   if (r) {
-    assert(r != -EAGAIN);
+    assert(r != -EAGAIN); /* if we're doing an op, it's a write --
+                            don't write to snaps! */
     osd->reply_op_error(op, r);
     return;
   }    
@@ -360,8 +361,10 @@ void ReplicatedPG::do_op(MOSDOp *op)
       obc->ondisk_read_unlock();
     }
 
-    if (result == -EAGAIN)
+    if (result == -EAGAIN) { //must have referenced non-existent class
+      osd->reply_op_error(op, r);
       return;
+    }
 
     // prepare the reply
     ctx->reply = new MOSDOpReply(op, 0, osd->osdmap->get_epoch(), 0); 
@@ -2466,6 +2469,7 @@ void ReplicatedPG::sub_op_modify(MOSDSubOp *op)
     derr(0) << "error applying transaction: r = " << r << dendl;
     assert(0);
   }
+  // op is cleaned up by oncommit/onapply when both are executed
 }
 
 void ReplicatedPG::sub_op_modify_applied(RepModify *rm)