]> 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)
committerYixin Jin <yjin77@yahoo.ca>
Thu, 26 Jan 2023 19:42:34 +0000 (19:42 +0000)
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>
src/rgw/driver/rados/rgw_putobj_processor.cc

index fae8d557bba5cff4d784930f4003bdce86bfb16c..4116b14a4d3b55bbf81940ef5a01d3ab8ea6d4da 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) {