]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
kstore: fix dest onode process logic of clone_range
authorxie xingguo <xie.xingguo@zte.com.cn>
Tue, 19 Jan 2016 10:31:02 +0000 (18:31 +0800)
committerxie xingguo <xie.xingguo@zte.com.cn>
Tue, 19 Jan 2016 11:31:58 +0000 (19:31 +0800)
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
src/os/kstore/KStore.cc

index 68d6e9298432d65299ef9bab035eed591d6577da..2aa62536cfd77c172f699331ea5fefe8b984a03c 100644 (file)
@@ -3596,7 +3596,11 @@ int KStore::_clone_range(TransContext *txc,
     r = -ENOENT;
     goto out;
   }
-  newo = c->get_onode(new_oid, true);
+  newo = c->get_onode(new_oid, false);
+  if (!newo) {
+    newo = c->get_onode(new_oid, true);
+    _assign_nid(txc, newo);
+  }
   assert(newo);
   newo->exists = true;