int shard_id,
const std::string& start_marker,
const std::string& end_marker)
- : RGWSimpleCoroutine(store->ctx()), bs(store->getRados()),
+ : RGWSimpleCoroutine(store->ctx()), bucket_info(bucket_info),
+ shard_id(shard_id), bs(store->getRados()),
start_marker(BucketIndexShardsManager::get_shard_marker(start_marker)),
end_marker(BucketIndexShardsManager::get_shard_marker(end_marker))
{
- bs.init(dpp, bucket_info, bucket_info.layout.current_index, shard_id);
}
int RGWRadosBILogTrimCR::send_request(const DoutPrefixProvider *dpp)
{
+ int r = bs.init(dpp, bucket_info, bucket_info.layout.current_index, shard_id);
+ if (r < 0) {
+ ldpp_dout(dpp, -1) << "ERROR: bucket shard init failed ret=" << r << dendl;
+ return r;
+ }
+
bufferlist in;
cls_rgw_bi_log_trim_op call;
call.start_marker = std::move(start_marker);
};
class RGWRadosBILogTrimCR : public RGWSimpleCoroutine {
+ const RGWBucketInfo& bucket_info;
+ int shard_id;
RGWRados::BucketShard bs;
std::string start_marker;
std::string end_marker;