]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: don't dereference nullopt in DeleteMultiObj 50208/head
authorCasey Bodley <cbodley@redhat.com>
Sun, 19 Feb 2023 22:15:56 +0000 (17:15 -0500)
committerCory Snyder <csnyder@1111systems.com>
Wed, 5 Apr 2023 18:53:40 +0000 (14:53 -0400)
Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit 170298a1487f4389cf4627e5b10b7b50be9b6413)

src/rgw/rgw_op.cc

index 01f2f52a7e35aa43a328e6a366fe37b00de27dcf..7a3dd5a1d04d6af3cd47c6888f8f25bbd79aaeed 100644 (file)
@@ -6944,7 +6944,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) {
@@ -7011,7 +7011,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;
       });
@@ -7021,7 +7021,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) {