]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
rgw: CompleteMultipart uses s->object instead of target_obj
authorCasey Bodley <cbodley@redhat.com>
Fri, 3 May 2024 19:17:48 +0000 (15:17 -0400)
committerCasey Bodley <cbodley@redhat.com>
Mon, 6 May 2024 17:20:55 +0000 (13:20 -0400)
most requests operate directly on s->object. there's no reason to
allocate a separate target_obj for the same purpose

Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit d09b8ab2e077ceb6a0c6dfb99ce1b45d63a28be4)

src/rgw/rgw_op.cc
src/rgw/rgw_op.h

index 602280182d7a7f956538131f136cd0500277c29e..500bd1d967b4bc67f57f4965b07f841e80a73ef5 100644 (file)
@@ -6418,18 +6418,17 @@ void RGWCompleteMultipart::execute(optional_yield y)
     return;
   }
 
-  target_obj = s->bucket->get_object(rgw_obj_key(s->object->get_name()));
   if (s->bucket->versioning_enabled()) {
     if (!version_id.empty()) {
-      target_obj->set_instance(version_id);
+      s->object->set_instance(version_id);
     } else {
-      target_obj->gen_rand_obj_instance_name();
-      version_id = target_obj->get_instance();
+      s->object->gen_rand_obj_instance_name();
+      version_id = s->object->get_instance();
     }
   }
-  target_obj->set_attrs(meta_obj->get_attrs());
+  s->object->set_attrs(meta_obj->get_attrs());
 
-  op_ret = upload->complete(this, y, s->cct, parts->parts, remove_objs, accounted_size, compressed, cs_info, ofs, s->req_id, s->owner, olh_epoch, target_obj.get());
+  op_ret = upload->complete(this, y, s->cct, parts->parts, remove_objs, accounted_size, compressed, cs_info, ofs, s->req_id, s->owner, olh_epoch, s->object.get());
   if (op_ret < 0) {
     ldpp_dout(this, 0) << "ERROR: upload complete failed ret=" << op_ret << dendl;
     return;
@@ -6491,12 +6490,11 @@ void RGWCompleteMultipart::complete()
     }
   }
 
-  if (op_ret >= 0 && target_obj.get() != nullptr) {
-    s->object->set_attrs(target_obj->get_attrs());
+  if (op_ret >= 0) {
     etag = s->object->get_attrs()[RGW_ATTR_ETAG].to_str();
     // send request to notification manager
     if (res.get() != nullptr) {
-      int ret = res->publish_commit(this, ofs, upload_time, etag, target_obj->get_instance());
+      int ret = res->publish_commit(this, ofs, upload_time, etag, s->object->get_instance());
       if (ret < 0) {
         ldpp_dout(this, 1) << "ERROR: publishing notification failed, with error: " << ret << dendl;
         // too late to rollback operation, hence op_ret is not set here
@@ -6504,9 +6502,6 @@ void RGWCompleteMultipart::complete()
     } else {
       ldpp_dout(this, 1) << "ERROR: reservation is null" << dendl;
     }
-  } else {
-    ldpp_dout(this, 1) << "ERROR: either op_ret is negative (execute failed) or target_obj is null, op_ret: "
-                       << op_ret << dendl;
   }
 
   // remove the upload meta object ; the meta object is not versioned
@@ -6526,7 +6521,6 @@ void RGWCompleteMultipart::complete()
 
   res.reset();
   meta_obj.reset();
-  target_obj.reset();
 
   send_response();
 }
index 5f947fd53c5e21a81a7458a4814359dc12a4bbbb..9eb4b6f374f7c9457e3583fb9d2b55349359aeb7 100644 (file)
@@ -1841,7 +1841,6 @@ protected:
   std::unique_ptr<rgw::sal::MPSerializer> serializer;
   jspan_ptr multipart_trace;
   ceph::real_time upload_time;
-  std::unique_ptr<rgw::sal::Object> target_obj;
   std::unique_ptr<rgw::sal::Notification> res;
   std::unique_ptr<rgw::sal::Object> meta_obj;
   off_t ofs = 0;