From: songweibin Date: Sun, 11 Feb 2018 07:12:23 +0000 (+0800) Subject: librbd: validate if dst group snap name is equal to src X-Git-Tag: v13.0.2~226^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=8d59a2dc8ccb48a2e010f5bd1169209fe5dafe83;p=ceph.git librbd: validate if dst group snap name is equal to src Signed-off-by: songweibin --- diff --git a/src/librbd/api/Group.cc b/src/librbd/api/Group.cc index 4f475620515..99fea4a568d 100644 --- a/src/librbd/api/Group.cc +++ b/src/librbd/api/Group.cc @@ -938,6 +938,8 @@ int Group::snap_rename(librados::IoCtx& group_ioctx, const char *group_name, const char *old_snap_name, const char *new_snap_name) { CephContext *cct = (CephContext *)group_ioctx.cct(); + if (0 == strcmp(old_snap_name, new_snap_name)) + return -EEXIST; std::string group_id; int r = cls_client::dir_get_id(&group_ioctx, RBD_GROUP_DIRECTORY, diff --git a/src/librbd/api/Group.h b/src/librbd/api/Group.h index 7f7e973c90f..37cb82f7f72 100644 --- a/src/librbd/api/Group.h +++ b/src/librbd/api/Group.h @@ -19,7 +19,7 @@ namespace api { template struct Group { - static int create(librados::IoCtx& io_ctx, const char *imgname); + static int create(librados::IoCtx& io_ctx, const char *group_name); static int remove(librados::IoCtx& io_ctx, const char *group_name); static int list(librados::IoCtx& io_ctx, std::vector *names);