summaryrefslogtreecommitdiffstats
path: root/src/rgw/driver/rados/rgw_sal_rados.cc
diff options
context:
space:
mode:
authorCasey Bodley <cbodley@redhat.com>2024-08-02 15:19:56 +0200
committerCasey Bodley <cbodley@redhat.com>2024-08-02 16:31:51 +0200
commit4475fcbbe69485c0a9d857fb58eee09e175bd43c (patch)
tree6231472ea990f58012a857b7d27a7c9427aba02e /src/rgw/driver/rados/rgw_sal_rados.cc
parentMerge pull request #58883 from idryomov/wip-backport-create-resourceattrerror (diff)
downloadceph-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.cc8
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);
}
}