]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: don't dereference nullopt in DeleteMultiObj 54124/head
authorCasey Bodley <cbodley@redhat.com>
Sun, 19 Feb 2023 22:15:56 +0000 (17:15 -0500)
committerCasey Bodley <cbodley@redhat.com>
Fri, 20 Oct 2023 16:00:57 +0000 (12:00 -0400)
Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit 170298a1487f4389cf4627e5b10b7b50be9b6413)

src/rgw/rgw_op.cc

index 6a1a39dadc5c6be0a9fbe266f6ca773f0e6b2874..58f0983914527711c4dc3667a764f6dbef8d129a 100644 (file)
@@ -7106,7 +7106,7 @@ void RGWDeleteMultiObj::execute(optional_yield y)
   vector<rgw_obj_key>::iterator iter;
   RGWMultiDelXMLParser parser;
   uint32_t aio_count = 0;
-  const uint32_t max_aio = s->cct->_conf->rgw_multi_obj_del_max_aio;
+  const uint32_t max_aio = std::max<uint32_t>(1, s->cct->_conf->rgw_multi_obj_del_max_aio);
   char* buf;
   std::optional<boost::asio::deadline_timer> formatter_flush_cond;
   if (y) {
@@ -7173,7 +7173,7 @@ void RGWDeleteMultiObj::execute(optional_yield y)
         iter != multi_delete->objects.end();
         ++iter) {
     rgw_obj_key obj_key = *iter;
-    if (y && max_aio > 1) {
+    if (y) {
       wait_flush(y, &*formatter_flush_cond, [&aio_count, max_aio] {
         return aio_count < max_aio;
       });
@@ -7183,7 +7183,7 @@ void RGWDeleteMultiObj::execute(optional_yield y)
         aio_count--;
       }); 
     } else {
-      handle_individual_object(obj_key, y, &*formatter_flush_cond);
+      handle_individual_object(obj_key, y, nullptr);
     }
   }
   if (formatter_flush_cond) {