]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: don't dereference nullopt in DeleteMultiObj 49327/head
authorCasey Bodley <cbodley@redhat.com>
Sun, 19 Feb 2023 22:15:56 +0000 (17:15 -0500)
committerCory Snyder <csnyder@1111systems.com>
Tue, 7 Mar 2023 10:00:44 +0000 (05:00 -0500)
Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit 170298a1487f4389cf4627e5b10b7b50be9b6413)

src/rgw/rgw_op.cc

index f62e3687ec569d9cef87c453121cfa6856e5f8d0..f5631ce084f5abfcacd2115ceb6c420d02ab0b7d 100644 (file)
@@ -7189,7 +7189,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) {
@@ -7256,7 +7256,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;
       });
@@ -7266,7 +7266,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) {