]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
cls_rbd: fix -EEXIST checking in cls::rbd::image_set 8371/head
authorrunsisi <runsisi@hust.edu.cn>
Wed, 30 Mar 2016 10:25:50 +0000 (18:25 +0800)
committerrunsisi <runsisi@hust.edu.cn>
Thu, 31 Mar 2016 01:24:41 +0000 (09:24 +0800)
Signed-off-by: runsisi <runsisi@hust.edu.cn>
src/cls/rbd/cls_rbd.cc

index 24b2e3acd38c7430781516c75df7be43130b603e..3fc2e6b2c5cea34955325a45c8f1291fa785dda7 100644 (file)
@@ -3091,8 +3091,12 @@ int image_set(cls_method_context_t hctx, const string &image_id,
     std::string global_id_key = global_key(mirror_image.global_image_id);
     std::string image_id;
     r = read_key(hctx, global_id_key, &image_id);
-    if (r != -ENOENT) {
+    if (r >= 0) {
       return -EEXIST;
+    } else if (r != -ENOENT) {
+      CLS_ERR("error reading global image id: '%s': '%s'", image_id.c_str(),
+              cpp_strerror(r).c_str());
+      return r;
     }
   } else if (r < 0) {
     CLS_ERR("error reading mirrored image '%s': '%s'", image_id.c_str(),