]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: make C_OSD_CommittedPushedObject::op optional
authorSage Weil <sage@newdream.net>
Thu, 13 Oct 2011 19:52:13 +0000 (12:52 -0700)
committerSage Weil <sage@newdream.net>
Sat, 15 Oct 2011 04:02:32 +0000 (21:02 -0700)
This lets us reuse this helper for commiting recovery ops that aren't a
result of a push.

Signed-off-by: Sage Weil <sage@newdream.net>
src/osd/ReplicatedPG.cc
src/osd/ReplicatedPG.h

index 485277d3bdcc277a14a4a173c25816e5e799f7db..a027394c82072eb6071b451eb2eb3b7c57abd536 100644 (file)
@@ -4072,7 +4072,8 @@ void ReplicatedPG::_committed_pushed_object(MOSDSubOp *op, epoch_t same_since, e
     dout(10) << "_committed_pushed_object pg has changed, not touching last_complete_ondisk" << dendl;
   }
 
-  log_subop_stats(op, l_osd_sop_push_inb, l_osd_sop_push_lat);
+  if (op)
+    log_subop_stats(op, l_osd_sop_push_inb, l_osd_sop_push_lat);
 
   unlock();
   put();
index eab3c3de69927b8a799142c2ab711b99de5ed38c..ffdf414152037235b7ec56916d46a19c09d5a17c 100644 (file)
@@ -683,12 +683,14 @@ protected:
     epoch_t same_since;
     eversion_t last_complete;
     C_OSD_CommittedPushedObject(ReplicatedPG *p, MOSDSubOp *o, epoch_t ss, eversion_t lc) : pg(p), op(o), same_since(ss), last_complete(lc) {
-      op->get();
+      if (op)
+       op->get();
       pg->get();
     }
     void finish(int r) {
       pg->_committed_pushed_object(op, same_since, last_complete);
-      op->put();
+      if (op)
+       op->put();
     }
   };