From: runsisi Date: Wed, 30 Mar 2016 10:25:50 +0000 (+0800) Subject: cls_rbd: fix -EEXIST checking in cls::rbd::image_set X-Git-Tag: v10.1.1~34^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=1f8f43daed92d6b9f2f3b1d95fb691605af6526b;p=ceph.git cls_rbd: fix -EEXIST checking in cls::rbd::image_set Signed-off-by: runsisi --- diff --git a/src/cls/rbd/cls_rbd.cc b/src/cls/rbd/cls_rbd.cc index 24b2e3acd38c..3fc2e6b2c5ce 100644 --- a/src/cls/rbd/cls_rbd.cc +++ b/src/cls/rbd/cls_rbd.cc @@ -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(),