]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: keep track of current osd subop num
authorYehuda Sadeh <yehuda@inktank.com>
Thu, 14 Mar 2013 17:28:54 +0000 (10:28 -0700)
committerYehuda Sadeh <yehuda@inktank.com>
Wed, 8 May 2013 17:55:51 +0000 (10:55 -0700)
This can be used later to generate unique subop versions
in compound write operations.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
src/osd/ReplicatedPG.cc
src/osd/ReplicatedPG.h

index 708e4153ca89301d7e1f49ba7058b5601783ee5a..85b62662ac93b598946e09fc86e915a2d493f649 100644 (file)
@@ -1944,7 +1944,7 @@ int ReplicatedPG::do_osd_ops(OpContext *ctx, vector<OSDOp>& ops)
 
   dout(10) << "do_osd_op " << soid << " " << ops << dendl;
 
-  for (vector<OSDOp>::iterator p = ops.begin(); p != ops.end(); ++p) {
+  for (vector<OSDOp>::iterator p = ops.begin(); p != ops.end(); ++p, ctx->current_osd_subop_num++) {
     OSDOp& osd_op = *p;
     ceph_osd_op& op = osd_op.op;
  
index 644a277f0dc9c2f1ea3afff6813a56b6d89dcf88..f6fafcc6b56c6b915820c3a34c76e66c74134365 100644 (file)
@@ -291,6 +291,8 @@ public:
     eversion_t at_version;       // pg's current version pointer
     eversion_t reply_version;    // the version that we report the client (depends on the op)
 
+    int current_osd_subop_num;
+
     ObjectStore::Transaction op_t, local_t;
     vector<pg_log_entry_t> log;
 
@@ -317,6 +319,7 @@ public:
       new_obs(_obs->oi, _obs->exists),
       modify(false), user_modify(false),
       bytes_written(0), bytes_read(0),
+      current_osd_subop_num(0),
       obc(0), clone_obc(0), snapset_obc(0), data_off(0), reply(NULL), pg(_pg) { 
       if (_ssc) {
        new_snapset = _ssc->snapset;