]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: Fix mp upload obj leak due to reupload
authorYixin Jin <yjin77@yahoo.ca>
Wed, 11 Jan 2023 18:03:37 +0000 (18:03 +0000)
committerMykola Golub <mgolub@suse.com>
Tue, 13 Jun 2023 06:18:52 +0000 (07:18 +0100)
1. Replace the ugly dynamic_cast with the call
of obj_to_raw() to access the raw meta obj.

Fixes: https://tracker.ceph.com/issues/16767
Signed-off-by: Yixin Jin <yjin77@yahoo.ca>
(cherry picked from commit 4cc0db62d45d9aba2651e86aed931c4f59b721c7)

src/rgw/rgw_putobj_processor.cc

index 5bba925d88a28a37f7962a698c43fe3a86b50d13..a6cb0f85c5d0152eced8b183e95ebc51a5102b07 100644 (file)
@@ -502,8 +502,9 @@ int MultipartObjectProcessor::complete(size_t accounted_size,
   meta_obj->set_in_extra_data(true);
 
   rgw_raw_obj meta_raw_obj;
-  dynamic_cast<rgw::sal::RadosObject*>(meta_obj.get())->get_raw_obj(&meta_raw_obj);
-
+  store->getRados()->obj_to_raw(meta_obj->get_bucket()->get_placement_rule(), 
+                                meta_obj->get_obj(),
+                                &meta_raw_obj);
   rgw_rados_ref meta_obj_ref;
   r = store->getRados()->get_raw_obj_ref(dpp, meta_raw_obj, &meta_obj_ref);
   if (r < 0) {