diff options
author | Casey Bodley <cbodley@redhat.com> | 2024-08-02 15:19:56 +0200 |
---|---|---|
committer | Casey Bodley <cbodley@redhat.com> | 2024-08-02 16:31:51 +0200 |
commit | 4475fcbbe69485c0a9d857fb58eee09e175bd43c (patch) | |
tree | 6231472ea990f58012a857b7d27a7c9427aba02e /src/rgw/driver/rados/rgw_sal_rados.cc | |
parent | Merge pull request #58883 from idryomov/wip-backport-create-resourceattrerror (diff) | |
download | ceph-4475fcbbe69485c0a9d857fb58eee09e175bd43c.tar.xz ceph-4475fcbbe69485c0a9d857fb58eee09e175bd43c.zip |
rgw/rados: delete_objs_inline() uses rgw_rados_operate()
IoCtx::operate() will always block. use rgw_rados_operate() so that we
can suspend the coroutine when optional_yield is not empty
Signed-off-by: Casey Bodley <cbodley@redhat.com>
Diffstat (limited to 'src/rgw/driver/rados/rgw_sal_rados.cc')
-rw-r--r-- | src/rgw/driver/rados/rgw_sal_rados.cc | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/rgw/driver/rados/rgw_sal_rados.cc b/src/rgw/driver/rados/rgw_sal_rados.cc index fa4cce94b09..9a656be6029 100644 --- a/src/rgw/driver/rados/rgw_sal_rados.cc +++ b/src/rgw/driver/rados/rgw_sal_rados.cc @@ -2989,7 +2989,7 @@ int RadosMultipartUpload::cleanup_part_history(const DoutPrefixProvider* dpp, } if (store->getRados()->get_gc() == nullptr) { // Delete objects inline if gc hasn't been initialised (in case when bypass gc is specified) - store->getRados()->delete_objs_inline(dpp, chain, mp_obj.get_upload_id()); + store->getRados()->delete_objs_inline(dpp, chain, mp_obj.get_upload_id(), y); } else { // use upload id as tag and do it synchronously auto [ret, leftover_chain] = store->getRados()->send_chain_to_gc(chain, mp_obj.get_upload_id(), y); @@ -2999,7 +2999,7 @@ int RadosMultipartUpload::cleanup_part_history(const DoutPrefixProvider* dpp, return -ERR_NO_SUCH_UPLOAD; } // Delete objects inline if send chain to gc fails - store->getRados()->delete_objs_inline(dpp, *leftover_chain, mp_obj.get_upload_id()); + store->getRados()->delete_objs_inline(dpp, *leftover_chain, mp_obj.get_upload_id(), y); } } return 0; @@ -3059,7 +3059,7 @@ int RadosMultipartUpload::abort(const DoutPrefixProvider *dpp, CephContext *cct, if (store->getRados()->get_gc() == nullptr) { //Delete objects inline if gc hasn't been initialised (in case when bypass gc is specified) - store->getRados()->delete_objs_inline(dpp, chain, mp_obj.get_upload_id()); + store->getRados()->delete_objs_inline(dpp, chain, mp_obj.get_upload_id(), y); } else { /* use upload id as tag and do it synchronously */ auto [ret, leftover_chain] = store->getRados()->send_chain_to_gc(chain, mp_obj.get_upload_id(), y); @@ -3069,7 +3069,7 @@ int RadosMultipartUpload::abort(const DoutPrefixProvider *dpp, CephContext *cct, return -ERR_NO_SUCH_UPLOAD; } //Delete objects inline if send chain to gc fails - store->getRados()->delete_objs_inline(dpp, *leftover_chain, mp_obj.get_upload_id()); + store->getRados()->delete_objs_inline(dpp, *leftover_chain, mp_obj.get_upload_id(), y); } } |