]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: Fixes duplicate blob move when cloning
authorIgor Fedotov <ifedotov@mirantis.com>
Fri, 20 May 2016 16:41:34 +0000 (19:41 +0300)
committerSage Weil <sage@redhat.com>
Wed, 1 Jun 2016 15:38:54 +0000 (11:38 -0400)
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
src/os/bluestore/BlueStore.cc

index ad3a25c811fdce850d732eb60b55fe4dbccbf000..5f86630948c24bbccc120cfb6761ab2567eddce5 100644 (file)
@@ -6163,7 +6163,7 @@ int BlueStore::_clone(TransContext *txc,
       // move blobs
       map<int64_t,int64_t> moved_blobs;
       for (auto& p : oldo->onode.extent_map) {
-       if (!p.second.is_shared()) {
+       if (!p.second.is_shared() && moved_blobs.count(p.second.blob) == 0) {
          int64_t id = e->get_new_blob_id();
          moved_blobs[p.second.blob] = id;
          dout(30) << __func__ << "  moving old onode blob " << p.second.blob