From b7a30bc86f36230ff866d3cd26e5ae3d2af6abb8 Mon Sep 17 00:00:00 2001 From: Ruan Zitao Date: Wed, 21 Oct 2020 11:06:40 +0800 Subject: [PATCH] cls/rgw/cls_rgw.cc: fix multiple lastest version problem Fixes: https://tracker.ceph.com/issues/47919 Signed-off-by: Ruan Zitao Signed-off-by: Yang Honggang (cherry picked from commit f60f9ace1a4bceeda256373cf4603058e1947fa8) Conflicts: src/cls/rgw/cls_rgw.cc - nautilus does not have "rgw_bucket_dir_entry::FLAG_VER"; use "RGW_BUCKET_DIRENT_FLAG_VER" instead --- src/cls/rgw/cls_rgw.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/cls/rgw/cls_rgw.cc b/src/cls/rgw/cls_rgw.cc index ed004c256177..d5cbcd892a0d 100644 --- a/src/cls/rgw/cls_rgw.cc +++ b/src/cls/rgw/cls_rgw.cc @@ -867,7 +867,9 @@ int rgw_bucket_complete_op(cls_method_context_t hctx, bufferlist *in, bufferlist } entry.index_ver = header.ver; - entry.flags = (entry.key.instance.empty() ? 0 : RGW_BUCKET_DIRENT_FLAG_VER); /* resetting entry flags, entry might have been previously a delete marker */ + /* resetting entry flags, entry might have been previously a delete + * marker */ + entry.flags &= RGW_BUCKET_DIRENT_FLAG_VER; if (op.tag.size()) { map::iterator pinter = entry.pending_map.find(op.tag); -- 2.47.3