]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
Merge remote-tracking branch 'origin/master' into wip-6029 549/head
authorGreg Farnum <greg@inktank.com>
Wed, 28 Aug 2013 00:26:36 +0000 (17:26 -0700)
committerGreg Farnum <greg@inktank.com>
Wed, 28 Aug 2013 00:26:36 +0000 (17:26 -0700)
Conflicts:
src/librados/AioCompletionImpl.h

1  2 
src/librados/AioCompletionImpl.h
src/osd/OSD.cc
src/osd/OSD.h
src/osd/PG.cc
src/osd/ReplicatedPG.cc
src/osd/ReplicatedPG.h
src/osd/osd_types.h
src/osdc/Objecter.cc
src/test/test_osd_types.cc

index 4243bcd2298f4ce0c939b8a8d3774cbdeaf2d3e3,a40282a7c25388cd49dfc7fe381e793b0367e31e..63a56db8aa8d69c601b5e1cc7a2e928c068641cc
@@@ -32,10 -32,10 +32,10 @@@ struct librados::AioCompletionImpl 
    int ref, rval;
    bool released;
    bool ack, safe;
 -  eversion_t objver;
 +  version_t objver;
  
    rados_callback_t callback_complete, callback_safe;
-   void *callback_arg;
+   void *callback_complete_arg, *callback_safe_arg;
  
    // for read
    bool is_read;
  
    AioCompletionImpl() : lock("AioCompletionImpl lock", false, false),
                        ref(1), rval(0), released(false), ack(false), safe(false),
-                       callback_complete(0), callback_safe(0), callback_arg(0),
 +                      objver(0),
+                       callback_complete(0),
+                       callback_safe(0),
+                       callback_complete_arg(0),
+                       callback_safe_arg(0),
                        is_read(false), pbl(0), buf(0), maxlen(0),
                        io(NULL), aio_write_seq(0), aio_write_list_item(this) { }
  
diff --cc src/osd/OSD.cc
Simple merge
diff --cc src/osd/OSD.h
Simple merge
diff --cc src/osd/PG.cc
Simple merge
index cfa1dce1942611198e52c6a601ca4105b9bb9df5,0f904c73a2df779cf789aa1bf0b8e0c1303eda2c..a04ab485e7e0261f905c0d757a09552982d44bb2
@@@ -908,15 -905,13 +905,14 @@@ void ReplicatedPG::do_op(OpRequestRef o
        return;
      }
  
 -    eversion_t oldv = pg_log.get_log().get_request_version(ctx->reqid);
 -    if (oldv != eversion_t()) {
 +    const pg_log_entry_t *entry = pg_log.get_log().get_request(ctx->reqid);
 +    if (entry) {
 +      const eversion_t& oldv = entry->version;
        dout(3) << "do_op dup " << ctx->reqid << " was " << oldv << dendl;
        delete ctx;
-       put_object_context(obc);
-       put_object_contexts(src_obc);
+       src_obc.clear();
        if (already_complete(oldv)) {
 -      osd->reply_op_error(op, 0, oldv);
 +      osd->reply_op_error(op, 0, oldv, entry->user_version);
        } else {
        if (m->wants_ack()) {
          if (already_ack(oldv)) {
@@@ -2833,11 -2817,11 +2825,11 @@@ int ReplicatedPG::do_osd_ops(OpContext 
          uint64_t cookie = op.watch.cookie;
        bool do_watch = op.watch.flag & 1;
          entity_name_t entity = ctx->reqid.name;
-       ObjectContext *obc = ctx->obc;
+       ObjectContextRef obc = ctx->obc;
  
-       dout(10) << "watch: ctx->obc=" << (void *)obc << " cookie=" << cookie
+       dout(10) << "watch: ctx->obc=" << (void *)obc.get() << " cookie=" << cookie
                 << " oi.version=" << oi.version.version << " ctx->at_version=" << ctx->at_version << dendl;
 -      dout(10) << "watch: oi.user_version=" << oi.user_version.version << dendl;
 +      dout(10) << "watch: oi.user_version=" << oi.user_version<< dendl;
        dout(10) << "watch: peer_addr="
          << ctx->op->request->get_connection()->get_peer_addr() << dendl;
  
@@@ -6474,10 -6420,10 +6412,10 @@@ ObjectContextRef ReplicatedPG::mark_obj
  
    // Add log entry
    ++info.last_update.version;
 -  pg_log_entry_t e(what, oid, info.last_update, version, osd_reqid_t(), mtime);
 +  pg_log_entry_t e(what, oid, info.last_update, version, info.last_user_version, osd_reqid_t(), mtime);
    pg_log.add(e);
    
-   ObjectContext *obc = get_object_context(oid, true);
+   ObjectContextRef obc = get_object_context(oid, true);
  
    obc->ondisk_write_lock();
  
index 36296c96ce13268a0105b2f74bb4cfeb1b910500,0fbe5afd9caca9a3b0708159a884a177894d728a..bce141834caafea179a45b371ec86e4cd9dac19f
@@@ -148,9 -154,9 +154,9 @@@ public
        op(_op), reqid(_reqid), ops(_ops), obs(_obs), snapset(0),
        new_obs(_obs->oi, _obs->exists),
        modify(false), user_modify(false),
 -      bytes_written(0), bytes_read(0),
 +      bytes_written(0), bytes_read(0), user_at_version(0),
        current_osd_subop_num(0),
-       obc(0), clone_obc(0), snapset_obc(0), data_off(0), reply(NULL), pg(_pg),
+       data_off(0), reply(NULL), pg(_pg),
        num_read(0),
        num_write(0) {
        if (_ssc) {
Simple merge
Simple merge
Simple merge