From: Casey Bodley Date: Thu, 20 Aug 2020 18:35:32 +0000 (-0400) Subject: rgw: RGWBucket uses creation_time from RGWBucketInfo X-Git-Tag: v16.1.0~1240^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=2c39bf9ffd272bbe171b893a178e7490a25aeb3c;p=ceph.git rgw: RGWBucket uses creation_time from RGWBucketInfo RGWRadosBucket::get_creation_time() is uninitialized when returned by RGWRadosStore::create_bucket(). RGWCreateBucket passes this timestamp to link_bucket(), which will generate a new creation time if an empty one is given Fixes: https://tracker.ceph.com/issues/47055 Signed-off-by: Casey Bodley --- diff --git a/src/rgw/rgw_sal.cc b/src/rgw/rgw_sal.cc index 8b9d95edc285..cedf07554f6c 100644 --- a/src/rgw/rgw_sal.cc +++ b/src/rgw/rgw_sal.cc @@ -230,6 +230,8 @@ int RGWRadosBucket::update_container_stats(void) ent.size_rounded = iter->second.size_rounded; ent.creation_time = iter->second.creation_time; ent.placement_rule = std::move(iter->second.placement_rule); + + info.creation_time = ent.creation_time; info.placement_rule = ent.placement_rule; return 0; diff --git a/src/rgw/rgw_sal.h b/src/rgw/rgw_sal.h index 7b27b3c3d462..3904f7bd5ff3 100644 --- a/src/rgw/rgw_sal.h +++ b/src/rgw/rgw_sal.h @@ -163,7 +163,7 @@ class RGWBucket { size_t get_size_rounded() const { return ent.size_rounded; } uint64_t get_count() const { return ent.count; } rgw_placement_rule& get_placement_rule() { return info.placement_rule; } - ceph::real_time& get_creation_time() { return ent.creation_time; } + ceph::real_time& get_creation_time() { return info.creation_time; } ceph::real_time& get_modification_time() { return mtime; } obj_version& get_version() { return bucket_version; } void set_version(obj_version &ver) { bucket_version = ver; }