From b2de412d68f1d1f035f1842cd551d7e5a5a998b6 Mon Sep 17 00:00:00 2001 From: Yehuda Sadeh Date: Wed, 11 Dec 2019 05:53:38 -0800 Subject: [PATCH] rgw: use bucket creation time from bucket instance info Fixes: https://tracker.ceph.com/issues/43255 - when linking bucket, use creation time from bucket instance info - creating an already existing bucket, keep the original bucket instance info Signed-off-by: Yehuda Sadeh --- src/rgw/rgw_bucket.cc | 2 +- src/rgw/rgw_rados.cc | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/rgw/rgw_bucket.cc b/src/rgw/rgw_bucket.cc index 1a3b6b1a4c556..5d1d55cde20b8 100644 --- a/src/rgw/rgw_bucket.cc +++ b/src/rgw/rgw_bucket.cc @@ -726,7 +726,7 @@ int RGWBucket::link(RGWBucketAdminOpState& op_state, optional_yield y, /* link to user */ r = store->ctl()->bucket->link_bucket(user_info.user_id, bucket_info.bucket, - ceph::real_time(), + ep.creation_time, y, true, &ep_data); if (r < 0) { set_err_msg(err_msg, "failed to relink bucket"); diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc index b3e1d824f40de..8ed804600fcb0 100644 --- a/src/rgw/rgw_rados.cc +++ b/src/rgw/rgw_rados.cc @@ -2181,6 +2181,8 @@ int RGWRados::create_bucket(const RGWUserInfo& owner, rgw_bucket& bucket, /* continue anyway */ } } + + info = std::move(orig_info); /* ret == -EEXIST here */ } return ret; -- 2.39.5