]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
Revert "os/objectstore: add new op OP_CREATE for create a new object."
authorKefu Chai <kchai@redhat.com>
Mon, 31 Dec 2018 15:04:20 +0000 (23:04 +0800)
committerKefu Chai <kchai@redhat.com>
Mon, 31 Dec 2018 15:04:25 +0000 (23:04 +0800)
This reverts commit 22f73ba62eb1fe337622ea2aefdcd829f8def851.

Fixes: http://tracker.ceph.com/issues/37774
Signed-off-by: Kefu Chai <kchai@redhat.com>
src/os/ObjectStore.h
src/os/Transaction.cc
src/os/bluestore/BlueStore.cc
src/os/bluestore/BlueStore.h
src/os/filestore/FileStore.cc
src/os/kstore/KStore.cc
src/os/memstore/MemStore.cc
src/osd/ECTransaction.cc
src/osd/ReplicatedBackend.cc

index 8dd2295d11f453872f69db9cff3ebad7cb8b05f7..7cb53adf4486632c84b567d3500abc5492e7429a 100644 (file)
@@ -307,7 +307,6 @@ public:
   public:
     enum {
       OP_NOP =          0,
-      OP_CREATE =      7,   // cid, oid
       OP_TOUCH =        9,   // cid, oid
       OP_WRITE =        10,  // cid, oid, offset, len, bl
       OP_ZERO =         11,  // cid, oid, offset, len
@@ -602,7 +601,6 @@ public:
       case OP_NOP:
         break;
 
-      case OP_CREATE:
       case OP_TOUCH:
       case OP_REMOVE:
       case OP_SETATTR:
@@ -994,19 +992,6 @@ public:
       _op->op = OP_NOP;
       data.ops++;
     }
-    /**
-     * create
-     *
-     * create an object that does not yet exist
-     * (behavior is undefined if the object already exists)
-     */
-    void create(const coll_t& cid, const ghobject_t& oid) {
-      Op* _op = _get_next_op();
-      _op->op = OP_CREATE;
-      _op->cid = _get_coll_id(cid);
-      _op->oid = _get_object_id(oid);
-      data.ops++;
-    }
     /**
      * touch
      *
index e0c2b7b26ac36fc9686a30ee58b02bb1f49d8b40..ad390a1c3eeebab445dabab9285080f8d51c7978 100644 (file)
@@ -19,16 +19,6 @@ void ObjectStore::Transaction::dump(ceph::Formatter *f)
     case Transaction::OP_NOP:
       f->dump_string("op_name", "nop");
       break;
-    case Transaction::OP_CREATE:
-      {
-       coll_t cid = i.get_cid(op->cid);
-       ghobject_t oid = i.get_oid(op->oid);
-       f->dump_string("op_name", "create");
-       f->dump_stream("collection") << cid;
-       f->dump_stream("oid") << oid;
-      }
-      break;
-
     case Transaction::OP_TOUCH:
       {
         coll_t cid = i.get_cid(op->cid);
index 7d7d9d156c30ca2817037dc91d92c9a809943712..220d1c07f9579592140bc7ee8e405b5e9e189515 100644 (file)
@@ -3315,8 +3315,7 @@ uint64_t BlueStore::Collection::make_blob_unshared(SharedBlob *sb)
 
 BlueStore::OnodeRef BlueStore::Collection::get_onode(
   const ghobject_t& oid,
-  bool create,
-  bool is_createop)
+  bool create)
 {
   ceph_assert(create ? lock.is_wlocked() : lock.is_locked());
 
@@ -3329,12 +3328,9 @@ BlueStore::OnodeRef BlueStore::Collection::get_onode(
     }
   }
 
-  OnodeRef o = OnodeRef();
-  if (!is_createop) {
-    o = onode_map.lookup(oid);
-    if (o)
-      return o;
-  }
+  OnodeRef o = onode_map.lookup(oid);
+  if (o)
+    return o;
 
   mempool::bluestore_cache_other::string key;
   get_object_key(store->cct, oid, &key);
@@ -3343,12 +3339,9 @@ BlueStore::OnodeRef BlueStore::Collection::get_onode(
                        << pretty_binary_string(key) << dendl;
 
   bufferlist v;
-  int r = -ENOENT;
+  int r = store->db->get(PREFIX_OBJ, key.c_str(), key.size(), &v);
+  ldout(store->cct, 20) << " r " << r << " v.len " << v.length() << dendl;
   Onode *on;
-  if (!is_createop) {
-    r = store->db->get(PREFIX_OBJ, key.c_str(), key.size(), &v);
-    ldout(store->cct, 20) << " r " << r << " v.len " << v.length() << dendl;
-  }
   if (v.length() == 0) {
     ceph_assert(r == -ENOENT);
     if (!store->cct->_conf->bluestore_debug_misc &&
@@ -10791,7 +10784,6 @@ void BlueStore::_txc_add_transaction(TransContext *txc, Transaction *t)
     // these operations implicity create the object
     bool create = false;
     if (op->op == Transaction::OP_TOUCH ||
-       op->op == Transaction::OP_CREATE ||
        op->op == Transaction::OP_WRITE ||
        op->op == Transaction::OP_ZERO) {
       create = true;
@@ -10802,7 +10794,7 @@ void BlueStore::_txc_add_transaction(TransContext *txc, Transaction *t)
     OnodeRef &o = ovec[op->oid];
     if (!o) {
       ghobject_t oid = i.get_oid(op->oid);
-      o = c->get_onode(oid, create, op->op == Transaction::OP_CREATE);
+      o = c->get_onode(oid, create);
     }
     if (!create && (!o || !o->exists)) {
       dout(10) << __func__ << " op " << op->op << " got ENOENT on "
@@ -10812,7 +10804,6 @@ void BlueStore::_txc_add_transaction(TransContext *txc, Transaction *t)
     }
 
     switch (op->op) {
-    case Transaction::OP_CREATE:
     case Transaction::OP_TOUCH:
       r = _touch(txc, c, o);
       break;
index 689fbf4175fd4830876418daf42f6185625ce174..a263257785dc71fbc64746954540f6da1326c6fb 100644 (file)
@@ -1381,7 +1381,7 @@ public:
     pool_opts_t pool_opts;
     ContextQueue *commit_queue;
 
-    OnodeRef get_onode(const ghobject_t& oid, bool create, bool is_createop=false);
+    OnodeRef get_onode(const ghobject_t& oid, bool create);
 
     // the terminology is confusing here, sorry!
     //
index 9c4dd3141d98a7a42f3cc4f4f02ce25fea56abb7..cd03f6e36dd0f3afc5a1a1a34b66c8874222dcc4 100644 (file)
@@ -2760,7 +2760,6 @@ void FileStore::_do_transaction(
     switch (op->op) {
     case Transaction::OP_NOP:
       break;
-    case Transaction::OP_CREATE:
     case Transaction::OP_TOUCH:
       {
         const coll_t &_cid = i.get_cid(op->cid);
index 267cd9ad4c9968b37ad24d63f71905c2f7b686f8..e0476c9a2894b6b5374360a1299bcbc0f0a1d5b2 100644 (file)
@@ -2312,7 +2312,6 @@ void KStore::_txc_add_transaction(TransContext *txc, Transaction *t)
       // these operations implicity create the object
       bool create = false;
       if (op->op == Transaction::OP_TOUCH ||
-         op->op == Transaction::OP_CREATE ||
          op->op == Transaction::OP_WRITE ||
          op->op == Transaction::OP_ZERO) {
        create = true;
@@ -2330,7 +2329,6 @@ void KStore::_txc_add_transaction(TransContext *txc, Transaction *t)
     }
 
     switch (op->op) {
-    case Transaction::OP_CREATE:
     case Transaction::OP_TOUCH:
        r = _touch(txc, c, o);
       break;
index fc0bb537eea14b3de218f480f677e2e6807c71f2..ea87c80cc84b19112d288544f79390028b5bc3df 100644 (file)
@@ -667,7 +667,6 @@ void MemStore::_do_transaction(Transaction& t)
     switch (op->op) {
     case Transaction::OP_NOP:
       break;
-    case Transaction::OP_CREATE:
     case Transaction::OP_TOUCH:
       {
         coll_t cid = i.get_cid(op->cid);
index e2db8aa5508df4e2778203874ab13d1c05adf209..ee791d633c6ea8ecdba5005cae452626228d6057 100644 (file)
@@ -264,7 +264,7 @@ void ECTransaction::generate_transactions(
        [&](const PGTransaction::ObjectOperation::Init::None &) {},
        [&](const PGTransaction::ObjectOperation::Init::Create &op) {
          for (auto &&st: *transactions) {
-           st.second.create(
+           st.second.touch(
              coll_t(spg_t(pgid, st.first)),
              ghobject_t(oid, ghobject_t::NO_GEN, st.first));
          }
index 5b7f9852be69442e4e85c020f6e57271f3392704..a06c4f4448eacc7c6d9dd500be795f98526ddb5f 100644 (file)
@@ -322,7 +322,7 @@ void generate_transaction(
        [&](const PGTransaction::ObjectOperation::Init::None &) {
        },
        [&](const PGTransaction::ObjectOperation::Init::Create &op) {
-         t->create(coll, goid);
+         t->touch(coll, goid);
        },
        [&](const PGTransaction::ObjectOperation::Init::Clone &op) {
          t->clone(