]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
os/memstore: assert src and dst collection match on rename
authorSage Weil <sage@redhat.com>
Tue, 8 Mar 2016 18:14:47 +0000 (13:14 -0500)
committerSage Weil <sage@redhat.com>
Fri, 11 Mar 2016 15:41:38 +0000 (10:41 -0500)
Signed-off-by: Sage Weil <sage@redhat.com>
src/os/memstore/MemStore.cc

index 345ac20d9817e38e2c40f4f4d27d0947043ec3dc..eb06f18592d279be32fc8388f0b185bf4e636cc5 100644 (file)
@@ -1354,15 +1354,8 @@ int MemStore::_collection_move_rename(const coll_t& oldcid, const ghobject_t& ol
     return -ENOENT;
 
   // note: c and oc may be the same
-  if (&(*c) == &(*oc)) {
-    c->lock.get_write();
-  } else if (&(*c) < &(*oc)) {
-    c->lock.get_write();
-    oc->lock.get_write();
-  } else if (&(*c) > &(*oc)) {
-    oc->lock.get_write();
-    c->lock.get_write();
-  }
+  assert(&(*c) == &(*oc));
+  c->lock.get_write();
 
   int r = -EEXIST;
   if (c->object_hash.count(oid))
@@ -1380,8 +1373,6 @@ int MemStore::_collection_move_rename(const coll_t& oldcid, const ghobject_t& ol
   r = 0;
  out:
   c->lock.put_write();
-  if (&(*c) != &(*oc))
-    oc->lock.put_write();
   return r;
 }