]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: RGWBucket uses creation_time from RGWBucketInfo 36743/head
authorCasey Bodley <cbodley@redhat.com>
Thu, 20 Aug 2020 18:35:32 +0000 (14:35 -0400)
committerCasey Bodley <cbodley@redhat.com>
Fri, 21 Aug 2020 17:05:05 +0000 (13:05 -0400)
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 <cbodley@redhat.com>
src/rgw/rgw_sal.cc
src/rgw/rgw_sal.h

index 8b9d95edc285d683c294405db203a3503a2b75d6..cedf07554f6c999d8fdc77a3cddd450996daf2cc 100644 (file)
@@ -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;
index 7b27b3c3d462902e6bbe54b63eed0421f6638811..3904f7bd5ff3dc74962dcb74eeb206415954405c 100644 (file)
@@ -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; }