From 1f8f43daed92d6b9f2f3b1d95fb691605af6526b Mon Sep 17 00:00:00 2001 From: runsisi Date: Wed, 30 Mar 2016 18:25:50 +0800 Subject: [PATCH] cls_rbd: fix -EEXIST checking in cls::rbd::image_set Signed-off-by: runsisi --- src/cls/rbd/cls_rbd.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/cls/rbd/cls_rbd.cc b/src/cls/rbd/cls_rbd.cc index 24b2e3acd38..3fc2e6b2c5c 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(), -- 2.47.3