From: lu.shasha Date: Tue, 19 Sep 2017 06:01:37 +0000 (+0800) Subject: rgw: fix version bucket stats X-Git-Tag: v12.2.11~78^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F25644%2Fhead;p=ceph.git rgw: fix version bucket stats when link a null version delete_marker and the null version instance exists, the existing null version idx should not unlinked in rgw_bucket_link_olh. It will be removed in delete_obj. Fixes: http://tracker.ceph.com/issues/21429 Signed-off-by: Shasha Lu (cherry picked from commit 52a843c598bc0553d8e75ea8290731e26a83aed1) --- diff --git a/src/cls/rgw/cls_rgw.cc b/src/cls/rgw/cls_rgw.cc index 656783d26551..fba47d4601a1 100644 --- a/src/cls/rgw/cls_rgw.cc +++ b/src/cls/rgw/cls_rgw.cc @@ -1437,13 +1437,15 @@ static int rgw_bucket_link_olh(cls_method_context_t hctx, bufferlist *in, buffer if (ret < 0) { return ret; } + } + + removing = existed && op.delete_marker; + if (!removing) { ret = other_obj.unlink(); if (ret < 0) { return ret; } } - - removing = existed && op.delete_marker; } else { removing = (existed && !obj.is_delete_marker() && op.delete_marker); }