r = store->get_bucket_info(obj_ctx, tenant_name, bucket_name, bucket_info, nullptr, null_yield, pattrs);
} else {
string bucket_instance_id = bucket_name + ":" + bucket_id;
- r = store->get_bucket_instance_info(obj_ctx, bucket_instance_id, bucket_info, NULL, pattrs);
+ r = store->get_bucket_instance_info(obj_ctx, bucket_instance_id, bucket_info, NULL, pattrs, null_yield);
}
if (r < 0) {
cerr << "could not get bucket info for bucket=" << bucket_name << std::endl;
RGWBucketInfo bucket_info;
auto obj_ctx = store->svc.sysobj->init_obj_ctx();
- int r = store->get_bucket_instance_info(obj_ctx, bucket, bucket_info, NULL, &attrs);
+ int r = store->get_bucket_instance_info(obj_ctx, bucket, bucket_info, NULL, &attrs, null_yield);
if (r < 0) {
return r;
}
RGWBucketInfo bucket_info;
auto obj_ctx = store->svc.sysobj->init_obj_ctx();
- int r = store->get_bucket_instance_info(obj_ctx, bucket, bucket_info, nullptr, nullptr);
+ int r = store->get_bucket_instance_info(obj_ctx, bucket, bucket_info, nullptr, nullptr, null_yield);
if (r < 0) {
ldout(store->ctx(), 0) << "ERROR: " << __func__ << "(): get_bucket_instance_info(bucket=" << bucket << ") returned r=" << r << dendl;
return r;
for (const auto& bucket_instance : lst){
RGWBucketInfo binfo;
int r = store->get_bucket_instance_info(obj_ctx, bucket_instance,
- binfo, nullptr,nullptr);
+ binfo, nullptr,nullptr, null_yield);
if (r < 0){
// this can only happen if someone deletes us right when we're processing
lderr(store->ctx()) << "Bucket instance is invalid: " << bucket_instance
ceph::real_time orig_mtime;
RGWBucketInfo old_bi;
- ret = store->get_bucket_instance_info(obj_ctx, be.bucket, old_bi, &orig_mtime, &attrs_m);
+ ret = store->get_bucket_instance_info(obj_ctx, be.bucket, old_bi, &orig_mtime, &attrs_m, null_yield);
if (ret < 0) {
return ret;
}
real_time mtime;
auto obj_ctx = store->svc.sysobj->init_obj_ctx();
- int ret = store->get_bucket_instance_info(obj_ctx, oid, bci.info, &mtime, &bci.attrs);
+ int ret = store->get_bucket_instance_info(obj_ctx, oid, bci.info, &mtime, &bci.attrs, null_yield);
if (ret < 0)
return ret;
auto obj_ctx = store->svc.sysobj->init_obj_ctx();
int ret = store->get_bucket_instance_info(obj_ctx, entry, old_bci.info,
- &orig_mtime, &old_bci.attrs);
+ &orig_mtime, &old_bci.attrs, null_yield);
bool exists = (ret != -ENOENT);
if (ret < 0 && exists)
return ret;
RGWBucketInfo info;
auto obj_ctx = store->svc.sysobj->init_obj_ctx();
- int ret = store->get_bucket_instance_info(obj_ctx, entry, info, NULL, NULL);
+ int ret = store->get_bucket_instance_info(obj_ctx, entry, info, NULL, NULL, null_yield);
if (ret < 0 && ret != -ENOENT)
return ret;
*/
return store->get_bucket_info(obj_ctx, tenant_name, bucket_name,
- bucket_info, nullptr, nullptr);
+ bucket_info, nullptr, null_yield, nullptr);
}
if (s->bucket_instance_id.empty()) {
ret = store->get_bucket_info(obj_ctx, s->src_tenant_name, s->src_bucket_name, source_info, NULL, s->yield);
} else {
- ret = store->get_bucket_instance_info(obj_ctx, s->bucket_instance_id, source_info, NULL, NULL);
+ ret = store->get_bucket_instance_info(obj_ctx, s->bucket_instance_id, source_info, NULL, NULL, s->yield);
}
if (ret == 0) {
string& zonegroup = source_info.zonegroup;
} else {
ret = store->get_bucket_instance_info(obj_ctx, s->bucket_instance_id,
s->bucket_info, &s->bucket_mtime,
- &s->bucket_attrs);
+ &s->bucket_attrs, s->yield);
}
if (ret < 0) {
if (ret != -ENOENT) {
op_ret = store->get_bucket_info(*s->sysobj_ctx, src_tenant_name, src_bucket_name, src_bucket_info, NULL, s->yield, &src_attrs);
} else {
/* will only happen in intra region sync where the source and dest bucket is the same */
- op_ret = store->get_bucket_instance_info(*s->sysobj_ctx, s->bucket_instance_id, src_bucket_info, NULL, &src_attrs);
+ op_ret = store->get_bucket_instance_info(*s->sysobj_ctx, s->bucket_instance_id, src_bucket_info, NULL, &src_attrs, s->yield);
}
if (op_ret < 0) {
if (op_ret == -ENOENT) {
}
RGWBucketInfo bucket_info;
- ret = store->get_bucket_instance_info(sysobj_ctx, bucket_instance_id, bucket_info, nullptr, nullptr);
+ ret = store->get_bucket_instance_info(sysobj_ctx, bucket_instance_id, bucket_info, nullptr, nullptr, null_yield);
if (ret < 0) {
if (ret == -ENOENT) {
/* probably raced with bucket removal */
auto obj_ctx = store->svc.sysobj->init_obj_ctx();
- int r = store->get_bucket_instance_info(obj_ctx, bucket, bucket_info, NULL, NULL);
+ int r = store->get_bucket_instance_info(obj_ctx, bucket, bucket_info, NULL, NULL, null_yield);
if (r < 0) {
ldout(store->ctx(), 0) << "could not get bucket info for bucket=" << bucket << " r=" << r << dendl;
return r;
RGWSysObjectCtx obj_ctx = store->svc.sysobj->init_obj_ctx();
- int r = store->get_bucket_instance_info(obj_ctx, bucket, bucket_info, NULL, NULL);
+ int r = store->get_bucket_instance_info(obj_ctx, bucket, bucket_info, NULL, NULL, null_yield);
if (r < 0) {
ldout(store->ctx(), 0) << "could not get bucket info for bucket=" << bucket << " r=" << r << dendl;
return r;
RGWSysObjectCtx obj_ctx = store->svc.sysobj->init_obj_ctx();
- int r = store->get_bucket_instance_info(obj_ctx, bucket, bucket_info, NULL, NULL);
+ int r = store->get_bucket_instance_info(obj_ctx, bucket, bucket_info, NULL, NULL, null_yield);
if (r < 0) {
ldout(store->ctx(), 0) << "could not get bucket info for bucket=" << bucket << " r=" << r << dendl;
return r;
auto obj_ctx = store->svc.sysobj->init_obj_ctx();
bucket_info.objv_tracker.clear();
- int ret = store->get_bucket_instance_info(obj_ctx, bucket, bucket_info, nullptr, nullptr);
+ int ret = store->get_bucket_instance_info(obj_ctx, bucket, bucket_info, nullptr, nullptr, null_yield);
if (ret < 0) {
return ret;
}
RGWBucketInfo* bucket_info_p =
bucket_info_out ? bucket_info_out : &bucket_info;
- int ret = store->get_bucket_instance_info(obj_ctx, bucket, *bucket_info_p, NULL, NULL);
+ int ret = store->get_bucket_instance_info(obj_ctx, bucket, *bucket_info_p, NULL, NULL, null_yield);
if (ret < 0) {
return ret;
}
RGWBucketInfo bucket_info;
RGWBucketInfo* bucket_info_p =
bucket_info_out ? bucket_info_out : &bucket_info;
- int ret = store->get_bucket_instance_info(obj_ctx, bucket, *bucket_info_p, NULL, NULL);
+ int ret = store->get_bucket_instance_info(obj_ctx, bucket, *bucket_info_p, NULL, NULL, null_yield);
if (ret < 0) {
return ret;
}
if (bucket.bucket_id.empty()) {
r = get_bucket_info(obj_ctx, bucket.tenant, bucket.name, info, NULL, null_yield, &attrs);
} else {
- r = get_bucket_instance_info(obj_ctx, bucket, info, nullptr, &attrs);
+ r = get_bucket_instance_info(obj_ctx, bucket, info, nullptr, &attrs, null_yield);
}
if (r < 0) {
ldout(cct, 0) << "NOTICE: get_bucket_info on bucket=" << bucket.name << " returned err=" << r << dendl;
auto obj_ctx = svc.sysobj->init_obj_ctx();
RGWBucketInfo bucket_info;
- int ret = get_bucket_instance_info(obj_ctx, obj.bucket, bucket_info, NULL, NULL);
+ int ret = get_bucket_instance_info(obj_ctx, obj.bucket, bucket_info, NULL, NULL, null_yield);
if (ret < 0) {
ldout(cct, 0) << "ERROR: " << __func__ << "() get_bucket_instance_info(bucket=" << obj.bucket << ") returned ret=" << ret << dendl;
return ret;
}
int RGWRados::get_bucket_instance_info(RGWSysObjectCtx& obj_ctx, const string& meta_key, RGWBucketInfo& info,
- real_time *pmtime, map<string, bufferlist> *pattrs)
+ real_time *pmtime, map<string, bufferlist> *pattrs, optional_yield y)
{
size_t pos = meta_key.find(':');
if (pos == string::npos) {
}
int RGWRados::get_bucket_instance_info(RGWSysObjectCtx& obj_ctx, const rgw_bucket& bucket, RGWBucketInfo& info,
- real_time *pmtime, map<string, bufferlist> *pattrs)
+ real_time *pmtime, map<string, bufferlist> *pattrs, optional_yield y)
{
string oid;
if (bucket.oid.empty()) {
vector<rgw_bucket_dir_header> headers;
RGWBucketInfo bucket_info;
- int ret = get_bucket_instance_info(obj_ctx, bucket, bucket_info, NULL, NULL);
+ int ret = get_bucket_instance_info(obj_ctx, bucket, bucket_info, NULL, NULL, null_yield);
if (ret < 0) {
return ret;
}
vector<rgw_bucket_dir_header> headers;
RGWBucketInfo bucket_info;
auto obj_ctx = svc.sysobj->init_obj_ctx();
- int ret = get_bucket_instance_info(obj_ctx, bucket, bucket_info, NULL, NULL);
+ int ret = get_bucket_instance_info(obj_ctx, bucket, bucket_info, NULL, NULL, null_yield);
if (ret < 0) {
return ret;
}
RGWBucketEntryPoint& entry_point, RGWObjVersionTracker *objv_tracker,
ceph::real_time *pmtime, map<string, bufferlist> *pattrs, rgw_cache_entry_info *cache_info = NULL,
boost::optional<obj_version> refresh_version = boost::none);
- int get_bucket_instance_info(RGWSysObjectCtx& obj_ctx, const string& meta_key, RGWBucketInfo& info, ceph::real_time *pmtime, map<string, bufferlist> *pattrs);
- int get_bucket_instance_info(RGWSysObjectCtx& obj_ctx, const rgw_bucket& bucket, RGWBucketInfo& info, ceph::real_time *pmtime, map<string, bufferlist> *pattrs);
+ int get_bucket_instance_info(RGWSysObjectCtx& obj_ctx, const string& meta_key, RGWBucketInfo& info, ceph::real_time *pmtime, map<string, bufferlist> *pattrs, optional_yield y);
+ int get_bucket_instance_info(RGWSysObjectCtx& obj_ctx, const rgw_bucket& bucket, RGWBucketInfo& info, ceph::real_time *pmtime, map<string, bufferlist> *pattrs, optional_yield y);
int get_bucket_instance_from_oid(RGWSysObjectCtx& obj_ctx, const string& oid, RGWBucketInfo& info, ceph::real_time *pmtime, map<string, bufferlist> *pattrs,
rgw_cache_entry_info *cache_info = NULL,
boost::optional<obj_version> refresh_version = boost::none);
}
if (!bucket_instance.empty()) {
- http_ret = store->get_bucket_instance_info(*s->sysobj_ctx, bucket_instance, bucket_info, NULL, NULL);
+ http_ret = store->get_bucket_instance_info(*s->sysobj_ctx, bucket_instance, bucket_info, NULL, NULL, s->yield);
if (http_ret < 0) {
dout(5) << "could not get bucket instance info for bucket instance id=" << bucket_instance << dendl;
return;
}
} else { /* !bucket_name.empty() */
- http_ret = store->get_bucket_info(*s->sysobj_ctx, tenant_name, bucket_name, bucket_info, NULL, null_yield, NULL);
+ http_ret = store->get_bucket_info(*s->sysobj_ctx, tenant_name, bucket_name, bucket_info, NULL, s->yield, NULL);
if (http_ret < 0) {
dout(5) << "could not get bucket info for bucket=" << bucket_name << dendl;
return;
}
if (!bucket_instance.empty()) {
- http_ret = store->get_bucket_instance_info(*s->sysobj_ctx, bucket_instance, bucket_info, NULL, NULL);
+ http_ret = store->get_bucket_instance_info(*s->sysobj_ctx, bucket_instance, bucket_info, NULL, NULL, s->yield);
if (http_ret < 0) {
dout(5) << "could not get bucket instance info for bucket instance id=" << bucket_instance << dendl;
return;
}
} else { /* !bucket_name.empty() */
- http_ret = store->get_bucket_info(*s->sysobj_ctx, tenant_name, bucket_name, bucket_info, NULL, null_yield, NULL);
+ http_ret = store->get_bucket_info(*s->sysobj_ctx, tenant_name, bucket_name, bucket_info, NULL, s->yield, NULL);
if (http_ret < 0) {
dout(5) << "could not get bucket info for bucket=" << bucket_name << dendl;
return;
}
if (!bucket_instance.empty()) {
- http_ret = store->get_bucket_instance_info(*s->sysobj_ctx, bucket_instance, bucket_info, NULL, NULL);
+ http_ret = store->get_bucket_instance_info(*s->sysobj_ctx, bucket_instance, bucket_info, NULL, NULL, s->yield);
if (http_ret < 0) {
dout(5) << "could not get bucket instance info for bucket instance id=" << bucket_instance << dendl;
return;
}
} else { /* !bucket_name.empty() */
- http_ret = store->get_bucket_info(*s->sysobj_ctx, tenant_name, bucket_name, bucket_info, NULL, null_yield, NULL);
+ http_ret = store->get_bucket_info(*s->sysobj_ctx, tenant_name, bucket_name, bucket_info, NULL, s->yield, NULL);
if (http_ret < 0) {
dout(5) << "could not get bucket info for bucket=" << bucket_name << dendl;
return;
// read the bucket instance info for num_shards
auto ctx = store->svc.sysobj->init_obj_ctx();
RGWBucketInfo info;
- http_ret = store->get_bucket_instance_info(ctx, bucket, info, nullptr, nullptr);
+ http_ret = store->get_bucket_instance_info(ctx, bucket, info, nullptr, nullptr, s->yield);
if (http_ret < 0) {
ldout(s->cct, 4) << "failed to read bucket info: " << cpp_strerror(http_ret) << dendl;
return;