From: J. Eric Ivancich Date: Thu, 29 Aug 2019 14:41:53 +0000 (-0400) Subject: rgw: make rollback refcount tag match X-Git-Tag: v15.1.0~1661^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=a0fee94982d89f0210e1c526605831105cd90ef4;p=ceph.git rgw: make rollback refcount tag match When the refcount does a "get", the tag ends with a null character, but during a rollback, when the tag is "put" it does not end with a null character, so the same tag is not being manipulated and the refcounts are therefore off, preventing future deletion of an rgw object. This adds the null character to the "put" operation. This change was originally submitted by lltlo <120680451@qq.com> but wasn't signed-off. Signed-off-by: J. Eric Ivancich --- diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc index 2b543d95b81d..3d0eb6a274d4 100644 --- a/src/rgw/rgw_rados.cc +++ b/src/rgw/rgw_rados.cc @@ -4152,9 +4152,10 @@ done_ret: vector::iterator riter; /* rollback reference */ + string ref_tag = tag + '\0'; for (riter = ref_objs.begin(); riter != ref_objs.end(); ++riter) { ObjectWriteOperation op; - cls_refcount_put(op, tag, true); + cls_refcount_put(op, ref_tag, true); ref.pool.ioctx().locator_set_key(riter->loc);