From: Matt Benjamin Date: Thu, 21 Jan 2016 20:20:27 +0000 (-0500) Subject: rgw: the big op_ret change X-Git-Tag: v10.0.4~152^2^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=f27e9c4c2671191fce03ed3c35969c79d6b5741d;p=ceph.git rgw: the big op_ret change Move protected "int ret" member from immediate descendants of RGWOp to a RGWOp, renamed to "int op_ret." The new member can be accessed (via get_ret()) after the op has run, which solves the problem of propagating the last error code reliably to the executor. Signed-off-by: Matt Benjamin Conflicts: src/rgw/rgw_op.cc src/rgw/rgw_op.h src/rgw/rgw_rest_swift.cc --- diff --git a/src/rgw/rgw_main.cc b/src/rgw/rgw_main.cc index 522128219cc..8955d676945 100644 --- a/src/rgw/rgw_main.cc +++ b/src/rgw/rgw_main.cc @@ -684,14 +684,20 @@ done: } int http_ret = s->err.http_ret; + int op_ret = op->get_ret(); + req->log_format(s, "op status=%d", op_ret); req->log_format(s, "http status=%d", http_ret); if (handler) handler->put_op(op); rest->put_handler(handler); - dout(1) << "====== req done req=" << hex << req << dec << " http_status=" << http_ret << " ======" << dendl; + dout(1) << "====== req done req=" << hex << req << dec + << " op status=" << op_ret + << " http_status=" << http_ret + << " ======" + << dendl; return (ret < 0 ? ret : s->err.ret); } diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc index 34a5ff3e7ca..6a9b24c69e1 100644 --- a/src/rgw/rgw_op.cc +++ b/src/rgw/rgw_op.cc @@ -632,8 +632,8 @@ bool RGWOp::generate_cors_headers(string& origin, string& method, string& header /* Custom: */ origin = orig; - int ret = read_bucket_cors(); - if (ret < 0) { + op_ret = read_bucket_cors(); + if (op_ret < 0) { return false; } @@ -703,9 +703,9 @@ int RGWGetObj::read_user_manifest_part(rgw_bucket& bucket, read_op.params.obj_size = &obj_size; read_op.params.perr = &s->err; - ret = read_op.prepare(&cur_ofs, &cur_end); - if (ret < 0) - return ret; + op_ret = read_op.prepare(&cur_ofs, &cur_end); + if (op_ret < 0) + return op_ret; if (obj_size != ent.size) { // hmm.. something wrong, object not as expected, abort! @@ -713,9 +713,9 @@ int RGWGetObj::read_user_manifest_part(rgw_bucket& bucket, return -EIO; } - ret = rgw_policy_from_attrset(s->cct, attrs, &obj_policy); - if (ret < 0) - return ret; + op_ret = rgw_policy_from_attrset(s->cct, attrs, &obj_policy); + if (op_ret < 0) + return op_ret; if (!verify_object_permission(s, bucket_policy, &obj_policy, RGW_PERM_READ)) { return -EPERM; @@ -724,13 +724,13 @@ int RGWGetObj::read_user_manifest_part(rgw_bucket& bucket, perfcounter->inc(l_rgw_get_b, cur_end - cur_ofs); while (cur_ofs <= cur_end) { bufferlist bl; - ret = read_op.read(cur_ofs, cur_end, bl); - if (ret < 0) - return ret; + op_ret = read_op.read(cur_ofs, cur_end, bl); + if (op_ret < 0) + return op_ret; off_t len = bl.length(); cur_ofs += len; - ret = 0; + op_ret = 0; /* XXX redundant? */ perfcounter->tinc(l_rgw_get_lat, (ceph_clock_now(s->cct) - start_time)); send_response_data(bl, 0, len); @@ -1137,7 +1137,6 @@ bool RGWGetObj::prefetch_data() void RGWGetObj::pre_exec() { rgw_bucket_object_pre_exec(s); - ret = 0; } static bool object_is_expired(map& attrs) { @@ -1176,12 +1175,12 @@ void RGWGetObj::execute() RGWRados::Object op_target(store, s->bucket_info, *static_cast(s->obj_ctx), obj); RGWRados::Object::Read read_op(&op_target); - ret = get_params(); - if (ret < 0) + op_ret = get_params(); + if (op_ret < 0) goto done_err; - ret = init_common(); - if (ret < 0) + op_ret = init_common(); + if (op_ret < 0) goto done_err; new_ofs = ofs; @@ -1197,24 +1196,26 @@ void RGWGetObj::execute() read_op.params.obj_size = &s->obj_size; read_op.params.perr = &s->err; - ret = read_op.prepare(&new_ofs, &new_end); - if (ret < 0) + op_ret = read_op.prepare(&new_ofs, &new_end); + if (op_ret < 0) goto done_err; attr_iter = attrs.find(RGW_ATTR_USER_MANIFEST); if (attr_iter != attrs.end() && !skip_manifest) { - ret = handle_user_manifest(attr_iter->second.c_str()); - if (ret < 0) { - ldout(s->cct, 0) << "ERROR: failed to handle user manifest ret=" << ret << dendl; + op_ret = handle_user_manifest(attr_iter->second.c_str()); + if (op_ret < 0) { + ldout(s->cct, 0) << "ERROR: failed to handle user manifest ret=" + << op_ret << dendl; } return; } attr_iter = attrs.find(RGW_ATTR_SLO_MANIFEST); if (attr_iter != attrs.end()) { is_slo = true; - ret = handle_slo_manifest(attr_iter->second); - if (ret < 0) { - ldout(s->cct, 0) << "ERROR: failed to handle slo manifest ret=" << ret << dendl; + op_ret = handle_slo_manifest(attr_iter->second); + if (op_ret < 0) { + ldout(s->cct, 0) << "ERROR: failed to handle slo manifest ret=" << op_ret + << dendl; goto done_err; } return; @@ -1223,7 +1224,7 @@ void RGWGetObj::execute() /* Check whether the object has expired. Swift API documentation * stands that we should return 404 Not Found in such case. */ if (need_object_expiration() && object_is_expired(attrs)) { - ret = -ENOENT; + op_ret = -ENOENT; goto done_err; } @@ -1237,16 +1238,16 @@ void RGWGetObj::execute() perfcounter->inc(l_rgw_get_b, end - ofs); - ret = read_op.iterate(ofs, end, &cb); + op_ret = read_op.iterate(ofs, end, &cb); perfcounter->tinc(l_rgw_get_lat, (ceph_clock_now(s->cct) - start_time)); - if (ret < 0) { + if (op_ret < 0) { goto done_err; } - ret = send_response_data(bl, 0, 0); - if (ret < 0) { + op_ret = send_response_data(bl, 0, 0); + if (op_ret < 0) { goto done_err; } return; @@ -1293,14 +1294,14 @@ void RGWListBuckets::execute() uint64_t max_buckets = s->cct->_conf->rgw_list_buckets_max_chunk; - ret = get_params(); - if (ret < 0) { + op_ret = get_params(); + if (op_ret < 0) { goto send_end; } if (supports_account_metadata()) { - ret = rgw_get_user_attrs_by_uid(store, s->user.user_id, attrs); - if (ret < 0) { + op_ret = rgw_get_user_attrs_by_uid(store, s->user.user_id, attrs); + if (op_ret < 0) { goto send_end; } } @@ -1314,10 +1315,11 @@ void RGWListBuckets::execute() read_count = max_buckets; } - ret = rgw_read_user_buckets(store, s->user.user_id, buckets, - marker, end_marker, read_count, should_get_stats(), 0); + op_ret = rgw_read_user_buckets(store, s->user.user_id, buckets, + marker, end_marker, read_count, + should_get_stats(), 0); - if (ret < 0) { + if (op_ret < 0) { /* hmm.. something wrong here.. the user was authenticated, so it should exist */ ldout(s->cct, 10) << "WARNING: failed on rgw_get_user_buckets uid=" << s->user.user_id << dendl; @@ -1372,9 +1374,9 @@ void RGWStatAccount::execute() do { RGWUserBuckets buckets; - ret = rgw_read_user_buckets(store, s->user.user_id, buckets, - marker, string(), max_buckets, false); - if (ret < 0) { + op_ret = rgw_read_user_buckets(store, s->user.user_id, buckets, + marker, string(), max_buckets, false); + if (op_ret < 0) { /* hmm.. something wrong here.. the user was authenticated, so it should exist */ ldout(s->cct, 10) << "WARNING: failed on rgw_get_user_buckets uid=" << s->user.user_id << dendl; @@ -1408,7 +1410,6 @@ int RGWGetBucketVersioning::verify_permission() void RGWGetBucketVersioning::pre_exec() { rgw_bucket_object_pre_exec(s); - ret = 0; } void RGWGetBucketVersioning::execute() @@ -1428,14 +1429,12 @@ int RGWSetBucketVersioning::verify_permission() void RGWSetBucketVersioning::pre_exec() { rgw_bucket_object_pre_exec(s); - ret = 0; } void RGWSetBucketVersioning::execute() { - ret = get_params(); - - if (ret < 0) + op_ret = get_params(); + if (op_ret < 0) return; if (enable_versioning) { @@ -1445,9 +1444,11 @@ void RGWSetBucketVersioning::execute() s->bucket_info.flags |= (BUCKET_VERSIONED | BUCKET_VERSIONS_SUSPENDED); } - ret = store->put_bucket_instance_info(s->bucket_info, false, 0, &s->bucket_attrs); - if (ret < 0) { - ldout(s->cct, 0) << "NOTICE: put_bucket_info on bucket=" << s->bucket.name << " returned err=" << ret << dendl; + op_ret = store->put_bucket_instance_info(s->bucket_info, false, 0, + &s->bucket_attrs); + if (op_ret < 0) { + ldout(s->cct, 0) << "NOTICE: put_bucket_info on bucket=" << s->bucket.name + << " returned err=" << op_ret << dendl; return; } } @@ -1463,13 +1464,12 @@ int RGWGetBucketWebsite::verify_permission() void RGWGetBucketWebsite::pre_exec() { rgw_bucket_object_pre_exec(s); - ret = 0; } void RGWGetBucketWebsite::execute() { if (!s->bucket_info.has_website) { - ret = -ENOENT; + op_ret = -ENOENT; } } @@ -1484,22 +1484,21 @@ int RGWSetBucketWebsite::verify_permission() void RGWSetBucketWebsite::pre_exec() { rgw_bucket_object_pre_exec(s); - ret = 0; } void RGWSetBucketWebsite::execute() { - ret = get_params(); + op_ret = get_params(); - if (ret < 0) + if (op_ret < 0) return; s->bucket_info.has_website = true; s->bucket_info.website_conf = website_conf; - ret = store->put_bucket_instance_info(s->bucket_info, false, 0, &s->bucket_attrs); - if (ret < 0) { - ldout(s->cct, 0) << "NOTICE: put_bucket_info on bucket=" << s->bucket.name << " returned err=" << ret << dendl; + op_ret = store->put_bucket_instance_info(s->bucket_info, false, 0, &s->bucket_attrs); + if (op_ret < 0) { + ldout(s->cct, 0) << "NOTICE: put_bucket_info on bucket=" << s->bucket.name << " returned err=" << op_ret << dendl; return; } } @@ -1515,7 +1514,6 @@ int RGWDeleteBucketWebsite::verify_permission() void RGWDeleteBucketWebsite::pre_exec() { rgw_bucket_object_pre_exec(s); - ret = 0; } void RGWDeleteBucketWebsite::execute() @@ -1523,9 +1521,9 @@ void RGWDeleteBucketWebsite::execute() s->bucket_info.has_website = false; s->bucket_info.website_conf = RGWBucketWebsiteConf(); - ret = store->put_bucket_instance_info(s->bucket_info, false, 0, &s->bucket_attrs); - if (ret < 0) { - ldout(s->cct, 0) << "NOTICE: put_bucket_info on bucket=" << s->bucket.name << " returned err=" << ret << dendl; + op_ret = store->put_bucket_instance_info(s->bucket_info, false, 0, &s->bucket_attrs); + if (op_ret < 0) { + ldout(s->cct, 0) << "NOTICE: put_bucket_info on bucket=" << s->bucket.name << " returned err=" << op_ret << dendl; return; } } @@ -1541,7 +1539,6 @@ int RGWStatBucket::verify_permission() void RGWStatBucket::pre_exec() { rgw_bucket_object_pre_exec(s); - ret = 0; } void RGWStatBucket::execute() @@ -1550,16 +1547,16 @@ void RGWStatBucket::execute() bucket.bucket = s->bucket; buckets.add(bucket); map& m = buckets.get_buckets(); - ret = store->update_containers_stats(m); - if (!ret) - ret = -EEXIST; - if (ret > 0) { - ret = 0; + op_ret = store->update_containers_stats(m); + if (! op_ret) + op_ret = -EEXIST; + if (op_ret > 0) { + op_ret = 0; map::iterator iter = m.find(bucket.bucket.name); if (iter != m.end()) { bucket = iter->second; } else { - ret = -EINVAL; + op_ret = -EINVAL; } } } @@ -1594,21 +1591,20 @@ int RGWListBucket::parse_max_keys() void RGWListBucket::pre_exec() { rgw_bucket_object_pre_exec(s); - ret = 0; } void RGWListBucket::execute() { - ret = get_params(); - if (ret < 0) + op_ret = get_params(); + if (op_ret < 0) return; if (need_container_stats()) { map m; m[s->bucket.name] = RGWBucketEnt(); m.begin()->second.bucket = s->bucket; - ret = store->update_containers_stats(m); - if (ret > 0) { + op_ret = store->update_containers_stats(m); + if (op_ret > 0) { bucket = m.begin()->second; } } @@ -1622,8 +1618,8 @@ void RGWListBucket::execute() list_op.params.end_marker = end_marker; list_op.params.list_versions = list_versions; - ret = list_op.list_objects(max, &objs, &common_prefixes, &is_truncated); - if (ret >= 0 && !delimiter.empty()) { + op_ret = list_op.list_objects(max, &objs, &common_prefixes, &is_truncated); + if (op_ret >= 0 && !delimiter.empty()) { next_marker = list_op.get_next_marker(); } } @@ -1657,10 +1653,11 @@ int RGWCreateBucket::verify_permission() if (s->user.max_buckets) { RGWUserBuckets buckets; string marker; - int ret = rgw_read_user_buckets(store, s->user.user_id, buckets, - marker, string(), s->user.max_buckets, false); - if (ret < 0) - return ret; + op_ret = rgw_read_user_buckets(store, s->user.user_id, buckets, + marker, string(), s->user.max_buckets, + false); + if (op_ret < 0) + return op_ret; map& m = buckets.get_buckets(); if (m.size() >= s->user.max_buckets) { @@ -1698,7 +1695,6 @@ static int forward_request_to_master(struct req_state *s, obj_version *objv, RGW void RGWCreateBucket::pre_exec() { rgw_bucket_object_pre_exec(s); - ret = 0; } void RGWCreateBucket::execute() @@ -1713,24 +1709,24 @@ void RGWCreateBucket::execute() rgw_obj obj(store->zone.domain_root, bucket_name); obj_version objv, *pobjv = NULL; - ret = get_params(); - if (ret < 0) + op_ret = get_params(); + if (op_ret < 0) return; if (!store->region.is_master && store->region.api_name != location_constraint) { ldout(s->cct, 0) << "location constraint (" << location_constraint << ") doesn't match region" << " (" << store->region.api_name << ")" << dendl; - ret = -EINVAL; + op_ret = -EINVAL; return; } /* we need to make sure we read bucket info, it's not read before for this specific request */ RGWObjectCtx& obj_ctx = *static_cast(s->obj_ctx); - ret = store->get_bucket_info(obj_ctx, s->bucket_tenant, s->bucket_name, - s->bucket_info, NULL, &s->bucket_attrs); - if (ret < 0 && ret != -ENOENT) + op_ret = store->get_bucket_info(obj_ctx, s->bucket_tenant, s->bucket_name, + s->bucket_info, NULL, &s->bucket_attrs); + if (op_ret < 0 && op_ret != -ENOENT) return; - s->bucket_exists = (ret != -ENOENT); + s->bucket_exists = (op_ret != -ENOENT); s->bucket_owner.set_id(s->user.user_id); s->bucket_owner.set_name(s->user.display_name); @@ -1739,7 +1735,7 @@ void RGWCreateBucket::execute() &old_policy, obj); if (r >= 0) { if (old_policy.get_owner().get_id().compare(s->user.user_id) != 0) { - ret = -EEXIST; + op_ret = -EEXIST; return; } } @@ -1751,8 +1747,8 @@ void RGWCreateBucket::execute() if (!store->region.is_master) { JSONParser jp; - ret = forward_request_to_master(s, NULL, store, in_data, &jp); - if (ret < 0) + op_ret = forward_request_to_master(s, NULL, store, in_data, &jp); + if (op_ret < 0) return; JSONDecoder::decode_json("entry_point_object_ver", ep_objv, &jp); @@ -1782,11 +1778,12 @@ void RGWCreateBucket::execute() if (s->bucket_exists) { string selected_placement_rule; rgw_bucket bucket; - ret = store->select_bucket_placement(s->user, region_name, placement_rule, - s->bucket_tenant, s->bucket_name, bucket, - &selected_placement_rule); + op_ret = store->select_bucket_placement(s->user, region_name, + placement_rule, + s->bucket_tenant, s->bucket_name, + bucket, &selected_placement_rule); if (selected_placement_rule != s->bucket_info.placement_rule) { - ret = -EEXIST; + op_ret = -EEXIST; return; } } @@ -1801,16 +1798,17 @@ void RGWCreateBucket::execute() } s->bucket.tenant = s->bucket_tenant; /* ignored if bucket exists */ s->bucket.name = s->bucket_name; - ret = store->create_bucket(s->user, s->bucket, region_name, placement_rule, attrs, info, pobjv, - &ep_objv, creation_time, pmaster_bucket, true); + op_ret = store->create_bucket(s->user, s->bucket, region_name, placement_rule, + attrs, info, pobjv, &ep_objv, creation_time, + pmaster_bucket, true); /* continue if EEXIST and create_bucket will fail below. this way we can recover * from a partial create by retrying it. */ - ldout(s->cct, 20) << "rgw_create_bucket returned ret=" << ret << " bucket=" << s->bucket << dendl; + ldout(s->cct, 20) << "rgw_create_bucket returned ret=" << op_ret << " bucket=" << s->bucket << dendl; - if (ret && ret != -EEXIST) + if (op_ret && op_ret != -EEXIST) return; - existed = (ret == -EEXIST); + existed = (op_ret == -EEXIST); if (existed) { /* bucket already existed, might have raced with another bucket creation, or @@ -1820,21 +1818,24 @@ void RGWCreateBucket::execute() * Otherwise inform client about a name conflict. */ if (info.owner.compare(s->user.user_id) != 0) { - ret = -EEXIST; + op_ret = -EEXIST; return; } s->bucket = info.bucket; } - ret = rgw_link_bucket(store, s->user.user_id, s->bucket, info.creation_time, false); - if (ret && !existed && ret != -EEXIST) { /* if it exists (or previously existed), don't remove it! */ - ret = rgw_unlink_bucket(store, s->user.user_id, s->bucket.tenant, s->bucket.name); - if (ret < 0) { - ldout(s->cct, 0) << "WARNING: failed to unlink bucket: ret=" << ret << dendl; + op_ret = rgw_link_bucket(store, s->user.user_id, s->bucket, + info.creation_time, false); + if (op_ret && !existed && op_ret != -EEXIST) { + /* if it exists (or previously existed), don't remove it! */ + op_ret = rgw_unlink_bucket(store, s->user.user_id, s->bucket.tenant, + s->bucket.name); + if (op_ret < 0) { + ldout(s->cct, 0) << "WARNING: failed to unlink bucket: ret=" << op_ret + << dendl; } - } else if (ret == -EEXIST || (ret == 0 && existed)) { - ret = 0; - exist_ret = -ERR_BUCKET_EXISTS; + } else if (op_ret == -EEXIST || (op_ret == 0 && existed)) { + op_ret = -ERR_BUCKET_EXISTS; } } @@ -1849,12 +1850,11 @@ int RGWDeleteBucket::verify_permission() void RGWDeleteBucket::pre_exec() { rgw_bucket_object_pre_exec(s); - ret = 0; } void RGWDeleteBucket::execute() { - ret = -EINVAL; + op_ret = -EINVAL; if (s->bucket_name.empty()) return; @@ -1872,34 +1872,37 @@ void RGWDeleteBucket::execute() ver = strict_strtol(ver_str.c_str(), 10, &err); if (!err.empty()) { ldout(s->cct, 0) << "failed to parse ver param" << dendl; - ret = -EINVAL; + op_ret = -EINVAL; return; } ot.read_version.ver = ver; } } - ret = store->delete_bucket(s->bucket, ot); - - if (ret == 0) { - ret = rgw_unlink_bucket(store, s->user.user_id, s->bucket.tenant, s->bucket.name, false); - if (ret < 0) { - ldout(s->cct, 0) << "WARNING: failed to unlink bucket: ret=" << ret << dendl; + op_ret = store->delete_bucket(s->bucket, ot); + if (op_ret == 0) { + op_ret = rgw_unlink_bucket(store, s->user.user_id, s->bucket.tenant, + s->bucket.name, false); + if (op_ret < 0) { + ldout(s->cct, 0) << "WARNING: failed to unlink bucket: ret=" << op_ret + << dendl; } } - if (ret < 0) { + if (op_ret < 0) { return; } if (!store->region.is_master) { bufferlist in_data; JSONParser jp; - ret = forward_request_to_master(s, &ot.read_version, store, in_data, &jp); - if (ret < 0) { - if (ret == -ENOENT) { /* adjust error, - we want to return with NoSuchBucket and not NoSuchKey */ - ret = -ERR_NO_SUCH_BUCKET; + op_ret = forward_request_to_master(s, &ot.read_version, store, in_data, + &jp); + if (op_ret < 0) { + if (op_ret == -ENOENT) { + /* adjust error, we want to return with NoSuchBucket and not + * NoSuchKey */ + op_ret = -ERR_NO_SUCH_BUCKET; } return; } @@ -2084,7 +2087,6 @@ void RGWPutObj::dispose_processor(RGWPutObjProcessor *processor) void RGWPutObj::pre_exec() { rgw_bucket_object_pre_exec(s); - ret = 0; } static int put_data_and_throttle(RGWPutObjProcessor *processor, bufferlist& data, off_t ofs, @@ -2190,21 +2192,21 @@ void RGWPutObj::execute() perfcounter->inc(l_rgw_put); - ret = -EINVAL; + op_ret = -EINVAL; if (s->object.empty()) { goto done; } - ret = get_params(); - if (ret < 0) { - ldout(s->cct, 20) << "get_params() returned ret=" << ret << dendl; + op_ret = get_params(); + if (op_ret < 0) { + ldout(s->cct, 20) << "get_params() returned ret=" << op_ret << dendl; goto done; } - ret = get_system_versioning_params(s, &olh_epoch, &version_id); - if (ret < 0) { - ldout(s->cct, 20) << "get_system_versioning_params() returned ret=" \ - << ret << dendl; + op_ret = get_system_versioning_params(s, &olh_epoch, &version_id); + if (op_ret < 0) { + ldout(s->cct, 20) << "get_system_versioning_params() returned ret=" + << op_ret << dendl; goto done; } @@ -2212,11 +2214,11 @@ void RGWPutObj::execute() need_calc_md5 = true; ldout(s->cct, 15) << "supplied_md5_b64=" << supplied_md5_b64 << dendl; - ret = ceph_unarmor(supplied_md5_bin, &supplied_md5_bin[CEPH_CRYPTO_MD5_DIGESTSIZE + 1], + op_ret = ceph_unarmor(supplied_md5_bin, &supplied_md5_bin[CEPH_CRYPTO_MD5_DIGESTSIZE + 1], supplied_md5_b64, supplied_md5_b64 + strlen(supplied_md5_b64)); - ldout(s->cct, 15) << "ceph_armor ret=" << ret << dendl; - if (ret != CEPH_CRYPTO_MD5_DIGESTSIZE) { - ret = -ERR_INVALID_DIGEST; + ldout(s->cct, 15) << "ceph_armor ret=" << op_ret << dendl; + if (op_ret != CEPH_CRYPTO_MD5_DIGESTSIZE) { + op_ret = -ERR_INVALID_DIGEST; goto done; } @@ -2226,10 +2228,10 @@ void RGWPutObj::execute() if (!chunked_upload) { /* with chunked upload we don't know how big is the upload. we also check sizes at the end anyway */ - ret = store->check_quota(s->bucket_owner.get_id(), s->bucket, - user_quota, bucket_quota, s->content_length); - if (ret < 0) { - ldout(s->cct, 20) << "check_quota() returned ret=" << ret << dendl; + op_ret = store->check_quota(s->bucket_owner.get_id(), s->bucket, + user_quota, bucket_quota, s->content_length); + if (op_ret < 0) { + ldout(s->cct, 20) << "check_quota() returned ret=" << op_ret << dendl; goto done; } } @@ -2241,9 +2243,10 @@ void RGWPutObj::execute() processor = select_processor(*static_cast(s->obj_ctx), &multipart); - ret = processor->prepare(store, NULL); - if (ret < 0) { - ldout(s->cct, 20) << "processor->prepare() returned ret=" << ret << dendl; + op_ret = processor->prepare(store, NULL); + if (op_ret < 0) { + ldout(s->cct, 20) << "processor->prepare() returned ret=" << op_ret + << dendl; goto done; } @@ -2251,7 +2254,7 @@ void RGWPutObj::execute() bufferlist data; len = get_data(data); if (len < 0) { - ret = len; + op_ret = len; goto done; } if (!len) @@ -2268,10 +2271,12 @@ void RGWPutObj::execute() orig_data = data; } - ret = put_data_and_throttle(processor, data, ofs, (need_calc_md5 ? &hash : NULL), need_to_wait); - if (ret < 0) { - if (!need_to_wait || ret != -EEXIST) { - ldout(s->cct, 20) << "processor->thottle_data() returned ret=" << ret << dendl; + op_ret = put_data_and_throttle(processor, data, ofs, + (need_calc_md5 ? &hash : NULL), need_to_wait); + if (op_ret < 0) { + if (!need_to_wait || op_ret != -EEXIST) { + ldout(s->cct, 20) << "processor->thottle_data() returned ret=" + << op_ret << dendl; goto done; } @@ -2290,14 +2295,15 @@ void RGWPutObj::execute() gen_rand_alphanumeric(store->ctx(), buf, sizeof(buf) - 1); oid_rand.append(buf); - ret = processor->prepare(store, &oid_rand); - if (ret < 0) { - ldout(s->cct, 0) << "ERROR: processor->prepare() returned " << ret << dendl; + op_ret = processor->prepare(store, &oid_rand); + if (op_ret < 0) { + ldout(s->cct, 0) << "ERROR: processor->prepare() returned " + << op_ret << dendl; goto done; } - ret = put_data_and_throttle(processor, data, ofs, NULL, false); - if (ret < 0) { + op_ret = put_data_and_throttle(processor, data, ofs, NULL, false); + if (op_ret < 0) { goto done; } } @@ -2306,17 +2312,18 @@ void RGWPutObj::execute() } while (len > 0); if (!chunked_upload && ofs != s->content_length) { - ret = -ERR_REQUEST_TIMEOUT; + op_ret = -ERR_REQUEST_TIMEOUT; goto done; } s->obj_size = ofs; perfcounter->inc(l_rgw_put_b, s->obj_size); - ret = store->check_quota(s->bucket_owner.get_id(), s->bucket, - user_quota, bucket_quota, s->obj_size); - if (ret < 0) { - ldout(s->cct, 20) << "second check_quota() returned ret=" << ret << dendl; + op_ret = store->check_quota(s->bucket_owner.get_id(), s->bucket, + user_quota, bucket_quota, s->obj_size); + if (op_ret < 0) { + ldout(s->cct, 20) << "second check_quota() returned ret=" << op_ret + << dendl; goto done; } @@ -2329,7 +2336,7 @@ void RGWPutObj::execute() etag = calc_md5; if (supplied_md5_b64 && strcmp(calc_md5, supplied_md5)) { - ret = -ERR_BAD_DIGEST; + op_ret = -ERR_BAD_DIGEST; goto done; } @@ -2338,8 +2345,8 @@ void RGWPutObj::execute() attrs[RGW_ATTR_ACL] = aclbl; if (dlo_manifest) { - ret = encode_dlo_manifest_attr(dlo_manifest, attrs); - if (ret < 0) { + op_ret = encode_dlo_manifest_attr(dlo_manifest, attrs); + if (op_ret < 0) { ldout(s->cct, 0) << "bad user manifest: " << dlo_manifest << dendl; goto done; } @@ -2358,13 +2365,14 @@ void RGWPutObj::execute() } if (supplied_etag && etag.compare(supplied_etag) != 0) { - ret = -ERR_UNPROCESSABLE_ENTITY; + op_ret = -ERR_UNPROCESSABLE_ENTITY; goto done; } bl.append(etag.c_str(), etag.size() + 1); attrs[RGW_ATTR_ETAG] = bl; - for (iter = s->generic_attrs.begin(); iter != s->generic_attrs.end(); ++iter) { + for (iter = s->generic_attrs.begin(); iter != s->generic_attrs.end(); + ++iter) { bufferlist& attrbl = attrs[iter->first]; const string& val = iter->second; attrbl.append(val.c_str(), val.size() + 1); @@ -2382,7 +2390,8 @@ void RGWPutObj::execute() attrs[RGW_ATTR_SLO_UINDICATOR] = slo_userindicator_bl; } - ret = processor->complete(etag, &mtime, 0, attrs, delete_at, if_match, if_nomatch); + op_ret = processor->complete(etag, &mtime, 0, attrs, delete_at, if_match, + if_nomatch); done: dispose_processor(processor); @@ -2414,7 +2423,6 @@ void RGWPostObj::dispose_processor(RGWPutObjProcessor *processor) void RGWPostObj::pre_exec() { rgw_bucket_object_pre_exec(s); - ret = 0; } void RGWPostObj::execute() @@ -2427,29 +2435,29 @@ void RGWPostObj::execute() int len = 0; // read in the data from the POST form - ret = get_params(); - if (ret < 0) + op_ret = get_params(); + if (op_ret < 0) goto done; - ret = verify_params(); - if (ret < 0) + op_ret = verify_params(); + if (op_ret < 0) goto done; if (!verify_bucket_permission(s, RGW_PERM_WRITE)) { - ret = -EACCES; + op_ret = -EACCES; goto done; } - ret = store->check_quota(s->bucket_owner.get_id(), s->bucket, - user_quota, bucket_quota, s->content_length); - if (ret < 0) { + op_ret = store->check_quota(s->bucket_owner.get_id(), s->bucket, + user_quota, bucket_quota, s->content_length); + if (op_ret < 0) { goto done; } processor = select_processor(*static_cast(s->obj_ctx)); - ret = processor->prepare(store, NULL); - if (ret < 0) + op_ret = processor->prepare(store, NULL); + if (op_ret < 0) goto done; while (data_pending) { @@ -2457,33 +2465,33 @@ void RGWPostObj::execute() len = get_data(data); if (len < 0) { - ret = len; + op_ret = len; goto done; } if (!len) break; - ret = put_data_and_throttle(processor, data, ofs, &hash, false); + op_ret = put_data_and_throttle(processor, data, ofs, &hash, false); ofs += len; if (ofs > max_len) { - ret = -ERR_TOO_LARGE; + op_ret = -ERR_TOO_LARGE; goto done; } } if (len < min_len) { - ret = -ERR_TOO_SMALL; + op_ret = -ERR_TOO_SMALL; goto done; } s->obj_size = ofs; - ret = store->check_quota(s->bucket_owner.get_id(), s->bucket, - user_quota, bucket_quota, s->obj_size); - if (ret < 0) { + op_ret = store->check_quota(s->bucket_owner.get_id(), s->bucket, + user_quota, bucket_quota, s->obj_size); + if (op_ret < 0) { goto done; } @@ -2504,7 +2512,7 @@ void RGWPostObj::execute() attrs[RGW_ATTR_CONTENT_TYPE] = ct_bl; } - ret = processor->complete(etag, NULL, 0, attrs, delete_at); + op_ret = processor->complete(etag, NULL, 0, attrs, delete_at); done: dispose_processor(processor); @@ -2578,17 +2586,19 @@ int RGWPutMetadataAccount::handle_temp_url_update(const map& temp_u } RGWUser user; - ret = user.init(store, user_op); - if (ret < 0) { - ldout(store->ctx(), 0) << "ERROR: could not init user ret=" << ret << dendl; - return ret; + op_ret = user.init(store, user_op); + if (op_ret < 0) { + ldout(store->ctx(), 0) << "ERROR: could not init user ret=" << op_ret + << dendl; + return op_ret; } string err_msg; - ret = user.modify(user_op, &err_msg); - if (ret < 0) { - ldout(store->ctx(), 10) << "user.modify() returned " << ret << ": " << err_msg << dendl; - return ret; + op_ret = user.modify(user_op, &err_msg); + if (op_ret < 0) { + ldout(store->ctx(), 10) << "user.modify() returned " << op_ret << ": " + << err_msg << dendl; + return op_ret; } return 0; } @@ -2640,8 +2650,8 @@ void RGWPutMetadataAccount::execute() map attrs, orig_attrs, rmattrs; RGWObjVersionTracker acct_op_tracker; - ret = get_params(); - if (ret < 0) { + op_ret = get_params(); + if (op_ret < 0) { return; } @@ -2655,20 +2665,21 @@ void RGWPutMetadataAccount::execute() filter_out_temp_url(attrs, rmattr_names, temp_url_keys); if (!temp_url_keys.empty()) { if (s->perm_mask != RGW_PERM_FULL_CONTROL) { - ret = -EPERM; + op_ret = -EPERM; return; } } /* XXX tenant needed? */ - ret = rgw_store_user_attrs(store, s->user.user_id.id, attrs, &rmattrs, &acct_op_tracker); - if (ret < 0) { + op_ret = rgw_store_user_attrs(store, s->user.user_id.id, attrs, &rmattrs, + &acct_op_tracker); + if (op_ret < 0) { return; } if (!temp_url_keys.empty()) { - ret = handle_temp_url_update(temp_url_keys); - if (ret < 0) { + op_ret = handle_temp_url_update(temp_url_keys); + if (op_ret < 0) { return; } } @@ -2686,15 +2697,14 @@ int RGWPutMetadataBucket::verify_permission() void RGWPutMetadataBucket::pre_exec() { rgw_bucket_object_pre_exec(s); - ret = 0; } void RGWPutMetadataBucket::execute() { map attrs, orig_attrs, rmattrs; - ret = get_params(); - if (ret < 0) { + op_ret = get_params(); + if (op_ret < 0) { return; } @@ -2702,7 +2712,7 @@ void RGWPutMetadataBucket::execute() if (!placement_rule.empty() && placement_rule != s->bucket_info.placement_rule) { - ret = -EEXIST; + op_ret = -EEXIST; return; } @@ -2722,8 +2732,8 @@ void RGWPutMetadataBucket::execute() attrs[RGW_ATTR_CORS] = bl; } - ret = rgw_bucket_set_attrs(store, s->bucket_info, attrs, &rmattrs, - &s->bucket_info.objv_tracker); + op_ret = rgw_bucket_set_attrs(store, s->bucket_info, attrs, &rmattrs, + &s->bucket_info.objv_tracker); } int RGWPutMetadataObject::verify_permission() @@ -2738,7 +2748,6 @@ int RGWPutMetadataObject::verify_permission() void RGWPutMetadataObject::pre_exec() { rgw_bucket_object_pre_exec(s); - ret = 0; } void RGWPutMetadataObject::execute() @@ -2748,22 +2757,22 @@ void RGWPutMetadataObject::execute() store->set_atomic(s->obj_ctx, obj); - ret = get_params(); - if (ret < 0) { + op_ret = get_params(); + if (op_ret < 0) { return; } rgw_get_request_metadata(s->cct, s->info, attrs); /* check if obj exists, read orig attrs */ - ret = get_obj_attrs(store, s, obj, orig_attrs); - if (ret < 0) { + op_ret = get_obj_attrs(store, s, obj, orig_attrs); + if (op_ret < 0) { return; } /* Check whether the object has expired. Swift API documentation * stands that we should return 404 Not Found in such case. */ if (need_object_expiration() && object_is_expired(orig_attrs)) { - ret = -ENOENT; + op_ret = -ENOENT; return; } @@ -2773,14 +2782,14 @@ void RGWPutMetadataObject::execute() encode_delete_at_attr(delete_at, attrs); if (dlo_manifest) { - ret = encode_dlo_manifest_attr(dlo_manifest, attrs); - if (ret < 0) { + op_ret = encode_dlo_manifest_attr(dlo_manifest, attrs); + if (op_ret < 0) { ldout(s->cct, 0) << "bad user manifest: " << dlo_manifest << dendl; return; } } - ret = store->set_attrs(s->obj_ctx, obj, attrs, &rmattrs, NULL); + op_ret = store->set_attrs(s->obj_ctx, obj, attrs, &rmattrs, NULL); } int RGWDeleteObj::handle_slo_manifest(bufferlist& bl) @@ -2849,25 +2858,24 @@ int RGWDeleteObj::verify_permission() void RGWDeleteObj::pre_exec() { rgw_bucket_object_pre_exec(s); - ret = 0; } void RGWDeleteObj::execute() { - ret = -EINVAL; + op_ret = -EINVAL; rgw_obj obj(s->bucket, s->object); map attrs; - ret = get_params(); - if (ret < 0) { + op_ret = get_params(); + if (op_ret < 0) { return; } if (!s->object.empty()) { if (need_object_expiration() || multipart_delete) { /* check if obj exists, read orig attrs */ - ret = get_obj_attrs(store, s, obj, attrs); - if (ret < 0) { + op_ret = get_obj_attrs(store, s, obj, attrs); + if (op_ret < 0) { return; } } @@ -2876,12 +2884,12 @@ void RGWDeleteObj::execute() const auto slo_attr = attrs.find(RGW_ATTR_SLO_MANIFEST); if (slo_attr != attrs.end()) { - ret = handle_slo_manifest(slo_attr->second); - if (ret < 0) { - ldout(s->cct, 0) << "ERROR: failed to handle slo manifest ret=" << ret << dendl; + op_ret = handle_slo_manifest(slo_attr->second); + if (op_ret < 0) { + ldout(s->cct, 0) << "ERROR: failed to handle slo manifest ret=" << op_ret << dendl; } } else { - ret = -ERR_NOT_SLO_MANIFEST; + op_ret = -ERR_NOT_SLO_MANIFEST; } return; @@ -2894,8 +2902,9 @@ void RGWDeleteObj::execute() RGWRados::Object del_target(store, s->bucket_info, *obj_ctx, obj); RGWRados::Object::Delete del_op(&del_target); - ret = get_system_versioning_params(s, &del_op.params.olh_epoch, &del_op.params.marker_version_id); - if (ret < 0) { + op_ret = get_system_versioning_params(s, &del_op.params.olh_epoch, + &del_op.params.marker_version_id); + if (op_ret < 0) { return; } @@ -2903,8 +2912,8 @@ void RGWDeleteObj::execute() del_op.params.versioning_status = s->bucket_info.versioning_status(); del_op.params.obj_owner = s->owner; - ret = del_op.delete_obj(); - if (ret >= 0) { + op_ret = del_op.delete_obj(); + if (op_ret >= 0) { delete_marker = del_op.result.delete_marker; version_id = del_op.result.version_id; } @@ -2912,7 +2921,7 @@ void RGWDeleteObj::execute() /* Check whether the object has expired. Swift API documentation * stands that we should return 404 Not Found in such case. */ if (need_object_expiration() && object_is_expired(attrs)) { - ret = -ENOENT; + op_ret = -ENOENT; return; } } @@ -2966,22 +2975,22 @@ bool RGWCopyObj::parse_copy_location(const string& url_src, string& bucket_name, int RGWCopyObj::verify_permission() { RGWAccessControlPolicy src_policy(s->cct); - ret = get_params(); - if (ret < 0) - return ret; + op_ret = get_params(); + if (op_ret < 0) + return op_ret; - ret = get_system_versioning_params(s, &olh_epoch, &version_id); - if (ret < 0) { - return ret; + op_ret = get_system_versioning_params(s, &olh_epoch, &version_id); + if (op_ret < 0) { + return op_ret; } map src_attrs; RGWObjectCtx& obj_ctx = *static_cast(s->obj_ctx); - ret = store->get_bucket_info(obj_ctx, src_tenant_name, src_bucket_name, - src_bucket_info, NULL, &src_attrs); - if (ret < 0) - return ret; + op_ret = store->get_bucket_info(obj_ctx, src_tenant_name, src_bucket_name, + src_bucket_info, NULL, &src_attrs); + if (op_ret < 0) + return op_ret; src_bucket = src_bucket_info.bucket; @@ -2992,9 +3001,10 @@ int RGWCopyObj::verify_permission() store->set_prefetch_data(s->obj_ctx, src_obj); /* check source object permissions */ - ret = read_policy(store, s, src_bucket_info, src_attrs, &src_policy, src_bucket, src_object); - if (ret < 0) - return ret; + op_ret = read_policy(store, s, src_bucket_info, src_attrs, &src_policy, + src_bucket, src_object); + if (op_ret < 0) + return op_ret; if (!s->system_request && /* system request overrides permission checks */ !src_policy.verify_permission(s->user.user_id, s->perm_mask, RGW_PERM_READ)) @@ -3008,10 +3018,10 @@ int RGWCopyObj::verify_permission() dest_bucket_info = src_bucket_info; dest_attrs = src_attrs; } else { - ret = store->get_bucket_info(obj_ctx, dest_tenant_name, dest_bucket_name, - dest_bucket_info, NULL, &dest_attrs); - if (ret < 0) - return ret; + op_ret = store->get_bucket_info(obj_ctx, dest_tenant_name, dest_bucket_name, + dest_bucket_info, NULL, &dest_attrs); + if (op_ret < 0) + return op_ret; } dest_bucket = dest_bucket_info.bucket; @@ -3022,17 +3032,18 @@ int RGWCopyObj::verify_permission() rgw_obj_key no_obj; /* check dest bucket permissions */ - ret = read_policy(store, s, dest_bucket_info, dest_attrs, &dest_bucket_policy, dest_bucket, no_obj); - if (ret < 0) - return ret; + op_ret = read_policy(store, s, dest_bucket_info, dest_attrs, + &dest_bucket_policy, dest_bucket, no_obj); + if (op_ret < 0) + return op_ret; if (!s->system_request && /* system request overrides permission checks */ !dest_bucket_policy.verify_permission(s->user.user_id, s->perm_mask, RGW_PERM_WRITE)) return -EACCES; - ret = init_dest_policy(); - if (ret < 0) - return ret; + op_ret = init_dest_policy(); + if (op_ret < 0) + return op_ret; return 0; } @@ -3042,16 +3053,16 @@ int RGWCopyObj::init_common() { if (if_mod) { if (parse_time(if_mod, &mod_time) < 0) { - ret = -EINVAL; - return ret; + op_ret = -EINVAL; + return op_ret; } mod_ptr = &mod_time; } if (if_unmod) { if (parse_time(if_unmod, &unmod_time) < 0) { - ret = -EINVAL; - return ret; + op_ret = -EINVAL; + return op_ret; } unmod_ptr = &unmod_time; } @@ -3094,7 +3105,6 @@ void RGWCopyObj::progress_cb(off_t ofs) void RGWCopyObj::pre_exec() { rgw_bucket_object_pre_exec(s); - ret = 0; } void RGWCopyObj::execute() @@ -3111,32 +3121,32 @@ void RGWCopyObj::execute() encode_delete_at_attr(delete_at, attrs); - ret = store->copy_obj(obj_ctx, - s->user.user_id, - client_id, - op_id, - &s->info, - source_zone, - dst_obj, - src_obj, - dest_bucket_info, - src_bucket_info, - &src_mtime, - &mtime, - mod_ptr, - unmod_ptr, - if_match, - if_nomatch, - attrs_mod, - attrs, RGW_OBJ_CATEGORY_MAIN, - olh_epoch, - delete_at, - (version_id.empty() ? NULL : &version_id), - &s->req_id, /* use req_id as tag */ - &etag, - &s->err, - copy_obj_progress_cb, (void *)this - ); + op_ret = store->copy_obj(obj_ctx, + s->user.user_id, + client_id, + op_id, + &s->info, + source_zone, + dst_obj, + src_obj, + dest_bucket_info, + src_bucket_info, + &src_mtime, + &mtime, + mod_ptr, + unmod_ptr, + if_match, + if_nomatch, + attrs_mod, + attrs, RGW_OBJ_CATEGORY_MAIN, + olh_epoch, + delete_at, + (version_id.empty() ? NULL : &version_id), + &s->req_id, /* use req_id as tag */ + &etag, + &s->err, + copy_obj_progress_cb, (void *)this + ); } int RGWGetACLs::verify_permission() @@ -3156,7 +3166,6 @@ int RGWGetACLs::verify_permission() void RGWGetACLs::pre_exec() { rgw_bucket_object_pre_exec(s); - ret = 0; } void RGWGetACLs::execute() @@ -3187,7 +3196,6 @@ int RGWPutACLs::verify_permission() void RGWPutACLs::pre_exec() { rgw_bucket_object_pre_exec(s); - ret = 0; } void RGWPutACLs::execute() @@ -3201,10 +3209,10 @@ void RGWPutACLs::execute() char *new_data = NULL; rgw_obj obj; - ret = 0; + op_ret = 0; /* XXX redundant? */ if (!parser.init()) { - ret = -EINVAL; + op_ret = -EINVAL; return; } @@ -3213,20 +3221,20 @@ void RGWPutACLs::execute() owner = existing_policy->get_owner(); - ret = get_params(); - if (ret < 0) + op_ret = get_params(); + if (op_ret < 0) return; ldout(s->cct, 15) << "read len=" << len << " data=" << (data ? data : "") << dendl; if (!s->canned_acl.empty() && len) { - ret = -EINVAL; + op_ret = -EINVAL; return; } if (!s->canned_acl.empty() || s->has_acl_header) { - ret = get_policy_from_state(store, s, ss); - if (ret < 0) + op_ret = get_policy_from_state(store, s, ss); + if (op_ret < 0) return; new_data = strdup(ss.str().c_str()); @@ -3236,12 +3244,12 @@ void RGWPutACLs::execute() } if (!parser.parse(data, len, 1)) { - ret = -EACCES; + op_ret = -EACCES; return; } policy = static_cast(parser.find_first("AccessControlPolicy")); if (!policy) { - ret = -EINVAL; + op_ret = -EINVAL; return; } @@ -3251,8 +3259,8 @@ void RGWPutACLs::execute() *_dout << dendl; } - ret = policy->rebuild(store, &owner, new_policy); - if (ret < 0) + op_ret = policy->rebuild(store, &owner, new_policy); + if (op_ret < 0) return; if (s->cct->_conf->subsys.should_gather(ceph_subsys_rgw, 15)) { @@ -3270,17 +3278,17 @@ void RGWPutACLs::execute() store->set_atomic(s->obj_ctx, obj); if (!s->object.empty()) { - ret = get_obj_attrs(store, s, obj, attrs); - if (ret < 0) + op_ret = get_obj_attrs(store, s, obj, attrs); + if (op_ret < 0) return; } attrs[RGW_ATTR_ACL] = bl; if (!s->object.empty()) { - ret = store->set_attrs(s->obj_ctx, obj, attrs, NULL, ptracker); + op_ret = store->set_attrs(s->obj_ctx, obj, attrs, NULL, ptracker); } else { - ret = rgw_bucket_set_attrs(store, s->bucket_info, attrs, NULL, ptracker); + op_ret = rgw_bucket_set_attrs(store, s->bucket_info, attrs, NULL, ptracker); } } @@ -3294,13 +3302,13 @@ int RGWGetCORS::verify_permission() void RGWGetCORS::execute() { - ret = read_bucket_cors(); - if (ret < 0) + op_ret = read_bucket_cors(); + if (op_ret < 0) return ; if (!cors_exist) { dout(2) << "No CORS configuration set yet for this bucket" << dendl; - ret = -ENOENT; + op_ret = -ENOENT; return; } } @@ -3317,8 +3325,8 @@ void RGWPutCORS::execute() { rgw_obj obj; - ret = get_params(); - if (ret < 0) + op_ret = get_params(); + if (op_ret < 0) return; RGWObjVersionTracker *ptracker = (!s->object.empty() ? NULL : &s->bucket_info.objv_tracker); @@ -3327,11 +3335,11 @@ void RGWPutCORS::execute() if (is_object_op) { store->get_bucket_instance_obj(s->bucket, obj); store->set_atomic(s->obj_ctx, obj); - ret = store->set_attr(s->obj_ctx, obj, RGW_ATTR_CORS, cors_bl, ptracker); + op_ret = store->set_attr(s->obj_ctx, obj, RGW_ATTR_CORS, cors_bl, ptracker); } else { map attrs; attrs[RGW_ATTR_CORS] = cors_bl; - ret = rgw_bucket_set_attrs(store, s->bucket_info, attrs, NULL, ptracker); + op_ret = rgw_bucket_set_attrs(store, s->bucket_info, attrs, NULL, ptracker); } } @@ -3345,15 +3353,15 @@ int RGWDeleteCORS::verify_permission() void RGWDeleteCORS::execute() { - ret = read_bucket_cors(); - if (ret < 0) + op_ret = read_bucket_cors(); + if (op_ret < 0) return; bufferlist bl; rgw_obj obj; if (!cors_exist) { dout(2) << "No CORS configuration set yet for this bucket" << dendl; - ret = -ENOENT; + op_ret = -ENOENT; return; } store->get_bucket_instance_obj(s->bucket, obj); @@ -3367,13 +3375,13 @@ void RGWDeleteCORS::execute() if (is_object_op) { /* check if obj exists, read orig attrs */ - ret = get_obj_attrs(store, s, obj, orig_attrs); - if (ret < 0) + op_ret = get_obj_attrs(store, s, obj, orig_attrs); + if (op_ret < 0) return; } else { ptracker = (!s->object.empty() ? NULL : &s->bucket_info.objv_tracker); - ret = get_system_obj_attrs(store, s, obj, orig_attrs, NULL, ptracker); - if (ret < 0) + op_ret = get_system_obj_attrs(store, s, obj, orig_attrs, NULL, ptracker); + if (op_ret < 0) return; } @@ -3388,9 +3396,10 @@ void RGWDeleteCORS::execute() } } if (is_object_op) { - ret = store->set_attrs(s->obj_ctx, obj, attrs, &rmattrs, ptracker); + op_ret = store->set_attrs(s->obj_ctx, obj, attrs, &rmattrs, ptracker); } else { - ret = rgw_bucket_set_attrs(store, s->bucket_info, attrs, &rmattrs, ptracker); + op_ret = rgw_bucket_set_attrs(store, s->bucket_info, attrs, &rmattrs, + ptracker); } } @@ -3413,8 +3422,8 @@ int RGWOptionsCORS::validate_cors_request(RGWCORSConfiguration *cc) { void RGWOptionsCORS::execute() { - ret = read_bucket_cors(); - if (ret < 0) + op_ret = read_bucket_cors(); + if (op_ret < 0) return; origin = s->info.env->get("HTTP_ORIGIN"); @@ -3422,7 +3431,7 @@ void RGWOptionsCORS::execute() dout(0) << "Preflight request without mandatory Origin header" << dendl; - ret = -EINVAL; + op_ret = -EINVAL; return; } req_meth = s->info.env->get("HTTP_ACCESS_CONTROL_REQUEST_METHOD"); @@ -3430,16 +3439,16 @@ void RGWOptionsCORS::execute() dout(0) << "Preflight request without mandatory Access-control-request-method header" << dendl; - ret = -EINVAL; + op_ret = -EINVAL; return; } if (!cors_exist) { dout(2) << "No CORS configuration set yet for this bucket" << dendl; - ret = -ENOENT; + op_ret = -ENOENT; return; } req_hdrs = s->info.env->get("HTTP_ACCESS_CONTROL_REQUEST_HEADERS"); - ret = validate_cors_request(&bucket_cors); + op_ret = validate_cors_request(&bucket_cors); if (!rule) { origin = req_meth = NULL; return; @@ -3455,7 +3464,6 @@ int RGWGetRequestPayment::verify_permission() void RGWGetRequestPayment::pre_exec() { rgw_bucket_object_pre_exec(s); - ret = 0; } void RGWGetRequestPayment::execute() @@ -3478,15 +3486,17 @@ void RGWSetRequestPayment::pre_exec() void RGWSetRequestPayment::execute() { - ret = get_params(); + op_ret = get_params(); - if (ret < 0) + if (op_ret < 0) return; s->bucket_info.requester_pays = requester_pays; - ret = store->put_bucket_instance_info(s->bucket_info, false, 0, &s->bucket_attrs); - if (ret < 0) { - ldout(s->cct, 0) << "NOTICE: put_bucket_info on bucket=" << s->bucket.name << " returned err=" << ret << dendl; + op_ret = store->put_bucket_instance_info(s->bucket_info, false, 0, + &s->bucket_attrs); + if (op_ret < 0) { + ldout(s->cct, 0) << "NOTICE: put_bucket_info on bucket=" << s->bucket.name + << " returned err=" << op_ret << dendl; return; } } @@ -3502,7 +3512,6 @@ int RGWInitMultipart::verify_permission() void RGWInitMultipart::pre_exec() { rgw_bucket_object_pre_exec(s); - ret = 0; } void RGWInitMultipart::execute() @@ -3514,7 +3523,7 @@ void RGWInitMultipart::execute() if (get_params() < 0) return; - ret = -EINVAL; + op_ret = -EINVAL; if (s->object.empty()) return; @@ -3554,12 +3563,14 @@ void RGWInitMultipart::execute() obj_op.meta.category = RGW_OBJ_CATEGORY_MULTIMETA; obj_op.meta.flags = PUT_OBJ_CREATE_EXCL; - ret = obj_op.write_meta(0, attrs); - } while (ret == -EEXIST); + op_ret = obj_op.write_meta(0, attrs); + } while (op_ret == -EEXIST); } -static int get_multipart_info(RGWRados *store, struct req_state *s, string& meta_oid, - RGWAccessControlPolicy *policy, map& attrs) +static int get_multipart_info(RGWRados *store, struct req_state *s, + string& meta_oid, + RGWAccessControlPolicy *policy, + map& attrs) { map::iterator iter; bufferlist header; @@ -3568,12 +3579,12 @@ static int get_multipart_info(RGWRados *store, struct req_state *s, string& meta obj.init_ns(s->bucket, meta_oid, mp_ns); obj.set_in_extra_data(true); - int ret = get_obj_attrs(store, s, obj, attrs); - if (ret < 0) { - if (ret == -ENOENT) { + int op_ret = get_obj_attrs(store, s, obj, attrs); + if (op_ret < 0) { + if (op_ret == -ENOENT) { return -ERR_NO_SUCH_UPLOAD; } - return ret; + return op_ret; } if (policy) { @@ -3703,7 +3714,6 @@ int RGWCompleteMultipart::verify_permission() void RGWCompleteMultipart::pre_exec() { rgw_bucket_object_pre_exec(s); - ret = 0; } void RGWCompleteMultipart::execute() @@ -3727,38 +3737,39 @@ void RGWCompleteMultipart::execute() uint64_t olh_epoch = 0; string version_id; - ret = get_params(); - if (ret < 0) + op_ret = get_params(); + if (op_ret < 0) return; - ret = get_system_versioning_params(s, &olh_epoch, &version_id); - if (ret < 0) { + op_ret = get_system_versioning_params(s, &olh_epoch, &version_id); + if (op_ret < 0) { return; } if (!data || !len) { - ret = -ERR_MALFORMED_XML; + op_ret = -ERR_MALFORMED_XML; return; } if (!parser.init()) { - ret = -EIO; + op_ret = -EIO; return; } if (!parser.parse(data, len, 1)) { - ret = -ERR_MALFORMED_XML; + op_ret = -ERR_MALFORMED_XML; return; } parts = static_cast(parser.find_first("CompleteMultipartUpload")); if (!parts || parts->parts.empty()) { - ret = -ERR_MALFORMED_XML; + op_ret = -ERR_MALFORMED_XML; return; } - if ((int)parts->parts.size() > s->cct->_conf->rgw_multipart_part_upload_limit) { - ret = -ERANGE; + if ((int)parts->parts.size() > + s->cct->_conf->rgw_multipart_part_upload_limit) { + op_ret = -ERANGE; return; } @@ -3783,23 +3794,25 @@ void RGWCompleteMultipart::execute() meta_obj.set_in_extra_data(true); meta_obj.index_hash_source = s->object.name; - ret = get_obj_attrs(store, s, meta_obj, attrs); - if (ret < 0) { - ldout(s->cct, 0) << "ERROR: failed to get obj attrs, obj=" << meta_obj << " ret=" << ret << dendl; + op_ret = get_obj_attrs(store, s, meta_obj, attrs); + if (op_ret < 0) { + ldout(s->cct, 0) << "ERROR: failed to get obj attrs, obj=" << meta_obj + << " ret=" << op_ret << dendl; return; } do { - ret = list_multipart_parts(store, s, upload_id, meta_oid, max_parts, marker, obj_parts, &marker, &truncated); - if (ret == -ENOENT) { - ret = -ERR_NO_SUCH_UPLOAD; + op_ret = list_multipart_parts(store, s, upload_id, meta_oid, max_parts, + marker, obj_parts, &marker, &truncated); + if (op_ret == -ENOENT) { + op_ret = -ERR_NO_SUCH_UPLOAD; } - if (ret < 0) + if (op_ret < 0) return; total_parts += obj_parts.size(); if (!truncated && total_parts != (int)parts->parts.size()) { - ret = -ERR_INVALID_PART; + op_ret = -ERR_INVALID_PART; return; } @@ -3807,24 +3820,28 @@ void RGWCompleteMultipart::execute() uint64_t part_size = obj_iter->second.size; if (handled_parts < (int)parts->parts.size() - 1 && part_size < min_part_size) { - ret = -ERR_TOO_SMALL; + op_ret = -ERR_TOO_SMALL; return; } char petag[CEPH_CRYPTO_MD5_DIGESTSIZE]; if (iter->first != (int)obj_iter->first) { - ldout(s->cct, 0) << "NOTICE: parts num mismatch: next requested: " << iter->first << " next uploaded: " << obj_iter->first << dendl; - ret = -ERR_INVALID_PART; + ldout(s->cct, 0) << "NOTICE: parts num mismatch: next requested: " + << iter->first << " next uploaded: " + << obj_iter->first << dendl; + op_ret = -ERR_INVALID_PART; return; } string part_etag = rgw_string_unquote(iter->second); if (part_etag.compare(obj_iter->second.etag) != 0) { - ldout(s->cct, 0) << "NOTICE: etag mismatch: part: " << iter->first << " etag: " << iter->second << dendl; - ret = -ERR_INVALID_PART; + ldout(s->cct, 0) << "NOTICE: etag mismatch: part: " << iter->first + << " etag: " << iter->second << dendl; + op_ret = -ERR_INVALID_PART; return; } - hex_to_buf(obj_iter->second.etag.c_str(), petag, CEPH_CRYPTO_MD5_DIGESTSIZE); + hex_to_buf(obj_iter->second.etag.c_str(), petag, + CEPH_CRYPTO_MD5_DIGESTSIZE); hash.Update((const byte *)petag, sizeof(petag)); RGWUploadPartInfo& obj_part = obj_iter->second; @@ -3835,8 +3852,9 @@ void RGWCompleteMultipart::execute() src_obj.init_ns(s->bucket, oid, mp_ns); if (obj_part.manifest.empty()) { - ldout(s->cct, 0) << "ERROR: empty manifest for object part: obj=" << src_obj << dendl; - ret = -ERR_INVALID_PART; + ldout(s->cct, 0) << "ERROR: empty manifest for object part: obj=" + << src_obj << dendl; + op_ret = -ERR_INVALID_PART; return; } else { manifest.append(obj_part.manifest); @@ -3881,12 +3899,13 @@ void RGWCompleteMultipart::execute() obj_op.meta.owner = s->owner.get_id(); obj_op.meta.flags = PUT_OBJ_CREATE; - ret = obj_op.write_meta(ofs, attrs); - if (ret < 0) + op_ret = obj_op.write_meta(ofs, attrs); + if (op_ret < 0) return; // remove the upload obj - int r = store->delete_obj(*static_cast(s->obj_ctx), s->bucket_info, meta_obj, 0); + int r = store->delete_obj(*static_cast(s->obj_ctx), + s->bucket_info, meta_obj, 0); if (r < 0) { ldout(store->ctx(), 0) << "WARNING: failed to remove object " << meta_obj << dendl; } @@ -3903,12 +3922,11 @@ int RGWAbortMultipart::verify_permission() void RGWAbortMultipart::pre_exec() { rgw_bucket_object_pre_exec(s); - ret = 0; } void RGWAbortMultipart::execute() { - ret = -EINVAL; + op_ret = -EINVAL; string upload_id; string meta_oid; upload_id = s->info.args.get("uploadId"); @@ -3924,8 +3942,8 @@ void RGWAbortMultipart::execute() mp.init(s->object.name, upload_id); meta_oid = mp.get_meta(); - ret = get_multipart_info(store, s, meta_oid, NULL, attrs); - if (ret < 0) + op_ret = get_multipart_info(store, s, meta_oid, NULL, attrs); + if (op_ret < 0) return; bool truncated; @@ -3943,11 +3961,13 @@ void RGWAbortMultipart::execute() list remove_objs; do { - ret = list_multipart_parts(store, s, upload_id, meta_oid, max_parts, marker, obj_parts, &marker, &truncated); - if (ret < 0) + op_ret = list_multipart_parts(store, s, upload_id, meta_oid, max_parts, + marker, obj_parts, &marker, &truncated); + if (op_ret < 0) return; - for (obj_iter = obj_parts.begin(); obj_iter != obj_parts.end(); ++obj_iter) { + for (obj_iter = obj_parts.begin(); + obj_iter != obj_parts.end(); ++obj_iter) { RGWUploadPartInfo& obj_part = obj_iter->second; if (obj_part.manifest.empty()) { @@ -3955,8 +3975,8 @@ void RGWAbortMultipart::execute() rgw_obj obj; obj.init_ns(s->bucket, oid, mp_ns); obj.index_hash_source = s->object.name; - ret = store->delete_obj(*obj_ctx, s->bucket_info, obj, 0); - if (ret < 0 && ret != -ENOENT) + op_ret = store->delete_obj(*obj_ctx, s->bucket_info, obj, 0); + if (op_ret < 0 && op_ret != -ENOENT) return; } else { store->update_gc_chain(meta_obj, obj_part.manifest, &chain); @@ -3972,9 +3992,9 @@ void RGWAbortMultipart::execute() } while (truncated); /* use upload id as tag */ - ret = store->send_chain_to_gc(chain, upload_id , false); // do it async - if (ret < 0) { - ldout(store->ctx(), 5) << "gc->send_chain() returned " << ret << dendl; + op_ret = store->send_chain_to_gc(chain, upload_id , false); // do it async + if (op_ret < 0) { + ldout(store->ctx(), 5) << "gc->send_chain() returned " << op_ret << dendl; return; } @@ -3988,9 +4008,9 @@ void RGWAbortMultipart::execute() } // and also remove the metadata obj - ret = del_op.delete_obj(); - if (ret == -ENOENT) { - ret = -ERR_NO_SUCH_BUCKET; + op_ret = del_op.delete_obj(); + if (op_ret == -ENOENT) { + op_ret = -ERR_NO_SUCH_BUCKET; } } @@ -4005,7 +4025,6 @@ int RGWListMultipart::verify_permission() void RGWListMultipart::pre_exec() { rgw_bucket_object_pre_exec(s); - ret = 0; } void RGWListMultipart::execute() @@ -4014,18 +4033,19 @@ void RGWListMultipart::execute() string meta_oid; RGWMPObj mp; - ret = get_params(); - if (ret < 0) + op_ret = get_params(); + if (op_ret < 0) return; mp.init(s->object.name, upload_id); meta_oid = mp.get_meta(); - ret = get_multipart_info(store, s, meta_oid, &policy, xattrs); - if (ret < 0) + op_ret = get_multipart_info(store, s, meta_oid, &policy, xattrs); + if (op_ret < 0) return; - ret = list_multipart_parts(store, s, upload_id, meta_oid, max_parts, marker, parts, NULL, &truncated); + op_ret = list_multipart_parts(store, s, upload_id, meta_oid, max_parts, + marker, parts, NULL, &truncated); } int RGWListBucketMultiparts::verify_permission() @@ -4039,7 +4059,6 @@ int RGWListBucketMultiparts::verify_permission() void RGWListBucketMultiparts::pre_exec() { rgw_bucket_object_pre_exec(s); - ret = 0; } void RGWListBucketMultiparts::execute() @@ -4047,8 +4066,8 @@ void RGWListBucketMultiparts::execute() vector objs; string marker_meta; - ret = get_params(); - if (ret < 0) + op_ret = get_params(); + if (op_ret < 0) return; if (s->prot_flags & RGW_REST_SWIFT) { @@ -4056,7 +4075,7 @@ void RGWListBucketMultiparts::execute() path_args = s->info.args.get("path"); if (!path_args.empty()) { if (!delimiter.empty() || !prefix.empty()) { - ret = -EINVAL; + op_ret = -EINVAL; return; } prefix = path_args; @@ -4074,7 +4093,8 @@ void RGWListBucketMultiparts::execute() list_op.params.ns = mp_ns; list_op.params.filter = &mp_filter; - ret = list_op.list_objects(max_uploads, &objs, &common_prefixes, &is_truncated); + op_ret = list_op.list_objects(max_uploads, &objs, &common_prefixes, + &is_truncated); if (!objs.empty()) { vector::iterator iter; RGWMultipartUploadEntry entry; @@ -4100,7 +4120,6 @@ int RGWDeleteMultiObj::verify_permission() void RGWDeleteMultiObj::pre_exec() { rgw_bucket_object_pre_exec(s); - ret = 0; } void RGWDeleteMultiObj::execute() @@ -4111,29 +4130,29 @@ void RGWDeleteMultiObj::execute() int num_processed = 0; RGWObjectCtx *obj_ctx = static_cast(s->obj_ctx); - ret = get_params(); - if (ret < 0) { + op_ret = get_params(); + if (op_ret < 0) { goto error; } if (!data) { - ret = -EINVAL; + op_ret = -EINVAL; goto error; } if (!parser.init()) { - ret = -EINVAL; + op_ret = -EINVAL; goto error; } if (!parser.parse(data, len, 1)) { - ret = -EINVAL; + op_ret = -EINVAL; goto error; } multi_delete = static_cast(parser.find_first("Delete")); if (!multi_delete) { - ret = -EINVAL; + op_ret = -EINVAL; goto error; } @@ -4159,17 +4178,18 @@ void RGWDeleteMultiObj::execute() del_op.params.versioning_status = s->bucket_info.versioning_status(); del_op.params.obj_owner = s->owner; - ret = del_op.delete_obj(); - if (ret == -ENOENT) { - ret = 0; + op_ret = del_op.delete_obj(); + if (op_ret == -ENOENT) { + op_ret = 0; } - send_partial_response(*iter, del_op.result.delete_marker, del_op.result.version_id, ret); + send_partial_response(*iter, del_op.result.delete_marker, + del_op.result.version_id, op_ret); } /* set the return code to zero, errors at this point will be dumped to the response */ - ret = 0; + op_ret = 0; done: // will likely segfault if begin_response() has not been called @@ -4189,11 +4209,9 @@ bool RGWBulkDelete::Deleter::verify_permission(RGWBucketInfo& binfo, rgw_obj& obj, ACLOwner& bucket_owner /* out */) { - int ret = 0; - RGWAccessControlPolicy bacl(store->ctx()); rgw_obj_key no_obj; - ret = read_policy(store, s, binfo, battrs, &bacl, binfo.bucket, no_obj); + int ret = read_policy(store, s, binfo, battrs, &bacl, binfo.bucket, no_obj); if (ret < 0) { return false; } @@ -4212,11 +4230,9 @@ bool RGWBulkDelete::Deleter::verify_permission(RGWBucketInfo& binfo, bool RGWBulkDelete::Deleter::verify_permission(RGWBucketInfo& binfo, map& battrs) { - int ret = 0; - RGWAccessControlPolicy bacl(store->ctx()); rgw_obj_key no_obj; - ret = read_policy(store, s, binfo, battrs, &bacl, binfo.bucket, no_obj); + int ret = read_policy(store, s, binfo, battrs, &bacl, binfo.bucket, no_obj); if (ret < 0) { return false; } @@ -4226,13 +4242,12 @@ bool RGWBulkDelete::Deleter::verify_permission(RGWBucketInfo& binfo, bool RGWBulkDelete::Deleter::delete_single(const acct_path_t& path) { - int ret = 0; auto& obj_ctx = *static_cast(s->obj_ctx); RGWBucketInfo binfo; map battrs; - ret = store->get_bucket_info(obj_ctx, s->user.user_id.tenant, - path.bucket_name, binfo, NULL, &battrs); + int ret = store->get_bucket_info(obj_ctx, s->user.user_id.tenant, + path.bucket_name, binfo, NULL, &battrs); if (ret < 0) { goto binfo_fail; } @@ -4269,9 +4284,11 @@ bool RGWBulkDelete::Deleter::delete_single(const acct_path_t& path) ret = store->delete_bucket(binfo.bucket, ot); if (0 == ret) { - ret = rgw_unlink_bucket(store, binfo.owner, binfo.bucket.tenant, binfo.bucket.name, false); + ret = rgw_unlink_bucket(store, binfo.owner, binfo.bucket.tenant, + binfo.bucket.name, false); if (ret < 0) { - ldout(s->cct, 0) << "WARNING: failed to unlink bucket: ret=" << ret << dendl; + ldout(s->cct, 0) << "WARNING: failed to unlink bucket: ret=" << ret + << dendl; } } if (ret < 0) { @@ -4281,10 +4298,12 @@ bool RGWBulkDelete::Deleter::delete_single(const acct_path_t& path) if (!store->region.is_master) { bufferlist in_data; JSONParser jp; - ret = forward_request_to_master(s, &ot.read_version, store, in_data, &jp); + ret = forward_request_to_master(s, &ot.read_version, store, in_data, + &jp); if (ret < 0) { - if (ret == -ENOENT) { /* adjust error, - we want to return with NoSuchBucket and not NoSuchKey */ + if (ret == -ENOENT) { + /* adjust error, we want to return with NoSuchBucket and not + * NoSuchKey */ ret = -ERR_NO_SUCH_BUCKET; } goto delop_fail; @@ -4301,7 +4320,8 @@ binfo_fail: ldout(store->ctx(), 20) << "cannot find bucket = " << path.bucket_name << dendl; num_unfound++; } else { - ldout(store->ctx(), 20) << "cannot get bucket info, ret = " << ret << dendl; + ldout(store->ctx(), 20) << "cannot get bucket info, ret = " << ret + << dendl; fail_desc_t failed_item = { .err = ret, @@ -4371,7 +4391,7 @@ void RGWBulkDelete::execute() } ret = deleter->delete_chunk(items); - } while (!ret && is_truncated); + } while (!op_ret && is_truncated); return; } diff --git a/src/rgw/rgw_op.h b/src/rgw/rgw_op.h index 5395817bb97..7f96d25f4af 100644 --- a/src/rgw/rgw_op.h +++ b/src/rgw/rgw_op.h @@ -82,17 +82,20 @@ protected: bool cors_exist; RGWQuotaInfo bucket_quota; RGWQuotaInfo user_quota; - int ret; + int op_ret; virtual int init_quota(); public: - RGWOp() : s(NULL), dialect_handler(NULL), store(NULL), cors_exist(false) {} +RGWOp() : s(NULL), dialect_handler(NULL), store(NULL), cors_exist(false), + op_ret(0) {} virtual ~RGWOp() {} + int get_ret() const { return op_ret; } + virtual int init_processing() { - int ret = init_quota(); - if (ret < 0) - return ret; + op_ret = init_quota(); + if (op_ret < 0) + return op_ret; return 0; } @@ -121,7 +124,6 @@ public: virtual uint32_t op_mask() { return 0; } virtual int error_handler(int err_no, string *error_content); - int get_ret() { return ret; }; }; class RGWGetObj : public RGWOp { @@ -268,13 +270,11 @@ public: static const size_t MAX_CHUNK_ENTRIES = 1024; protected: - int ret; std::unique_ptr deleter; public: RGWBulkDelete() - : ret(0), - deleter(nullptr) { + : deleter(nullptr) { } int verify_permission(); @@ -344,7 +344,6 @@ protected: public: RGWStatAccount() { - ret = 0; buckets_count = 0; buckets_objcount = 0; buckets_size = 0; @@ -399,7 +398,7 @@ class RGWGetBucketLogging : public RGWOp { public: RGWGetBucketLogging() {} int verify_permission(); - void execute() { ret = 0; } + void execute() { } virtual void send_response() = 0; virtual const string name() { return "get_bucket_logging"; } @@ -412,7 +411,7 @@ public: RGWGetBucketLocation() {} ~RGWGetBucketLocation() {} int verify_permission(); - void execute() { ret = 0; } + void execute() { } virtual void send_response() = 0; virtual const string name() { return "get_bucket_location"; } @@ -530,10 +529,8 @@ protected: bufferlist in_data; - int exist_ret; - public: - RGWCreateBucket() : has_cors(false), exist_ret(0) {} + RGWCreateBucket() : has_cors(false) {} int verify_permission(); void pre_exec(); @@ -738,7 +735,7 @@ public: policy.set_ctx(s->cct); } int verify_permission(); - void pre_exec() { ret = 0; } + void pre_exec() { } void execute(); virtual int get_params() = 0; @@ -889,7 +886,6 @@ public: unmod_time = 0; mod_ptr = NULL; unmod_ptr = NULL; - ret = 0; src_mtime = 0; mtime = 0; attrs_mod = RGWRados::ATTRSMOD_NONE; @@ -945,7 +941,6 @@ protected: public: RGWPutACLs() { - ret = 0; len = 0; data = NULL; } @@ -985,10 +980,8 @@ protected: bufferlist cors_bl; public: - RGWPutCORS() { - ret = 0; - } - virtual ~RGWPutCORS() { } + RGWPutCORS() {} + virtual ~RGWPutCORS() {} int verify_permission(); void execute(); @@ -1076,9 +1069,7 @@ protected: RGWAccessControlPolicy policy; public: - RGWInitMultipart() { - ret = 0; - } + RGWInitMultipart() {} virtual void init(RGWRados *store, struct req_state *s, RGWHandler *h) { RGWOp::init(store, s, h); @@ -1104,7 +1095,6 @@ protected: public: RGWCompleteMultipart() { - ret = 0; data = NULL; len = 0; } @@ -1124,7 +1114,6 @@ public: }; class RGWAbortMultipart : public RGWOp { -protected: public: RGWAbortMultipart() {} @@ -1149,7 +1138,6 @@ protected: public: RGWListMultipart() { - ret = 0; max_parts = 1000; marker = 0; truncated = false; @@ -1256,7 +1244,6 @@ protected: public: RGWListBucketMultiparts() { max_uploads = 0; - ret = 0; is_truncated = false; default_max = 0; } @@ -1289,7 +1276,6 @@ protected: public: RGWDeleteMultiObj() { - ret = 0; max_to_delete = 1000; len = 0; data = NULL; diff --git a/src/rgw/rgw_rest.cc b/src/rgw/rgw_rest.cc index 798c604977c..84c9f3a422f 100644 --- a/src/rgw/rgw_rest.cc +++ b/src/rgw/rgw_rest.cc @@ -1008,8 +1008,8 @@ int RGWPutACLs_ObjStore::get_params() if (cl) { data = (char *)malloc(cl + 1); if (!data) { - ret = -ENOMEM; - return ret; + op_ret = -ENOMEM; + return op_ret; } int read_len; int r = s->cio->read(data, cl, &read_len); @@ -1021,7 +1021,7 @@ int RGWPutACLs_ObjStore::get_params() len = 0; } - return ret; + return op_ret; } static int read_all_chunked_input(req_state *s, char **pdata, int *plen, int max_read) @@ -1117,14 +1117,14 @@ int RGWCompleteMultipart_ObjStore::get_params() upload_id = s->info.args.get("uploadId"); if (upload_id.empty()) { - ret = -ENOTSUP; - return ret; + op_ret = -ENOTSUP; + return op_ret; } #define COMPLETE_MULTIPART_MAX_LEN (1024 * 1024) /* api defines max 10,000 parts, this should be enough */ - ret = rgw_rest_read_all_input(s, &data, &len, COMPLETE_MULTIPART_MAX_LEN); - if (ret < 0) - return ret; + op_ret = rgw_rest_read_all_input(s, &data, &len, COMPLETE_MULTIPART_MAX_LEN); + if (op_ret < 0) + return op_ret; return 0; } @@ -1134,7 +1134,7 @@ int RGWListMultipart_ObjStore::get_params() upload_id = s->info.args.get("uploadId"); if (upload_id.empty()) { - ret = -ENOTSUP; + op_ret = -ENOTSUP; } string marker_str = s->info.args.get("part-number-marker"); @@ -1143,8 +1143,8 @@ int RGWListMultipart_ObjStore::get_params() marker = strict_strtol(marker_str.c_str(), 10, &err); if (!err.empty()) { ldout(s->cct, 20) << "bad marker: " << marker << dendl; - ret = -EINVAL; - return ret; + op_ret = -EINVAL; + return op_ret; } } @@ -1152,7 +1152,7 @@ int RGWListMultipart_ObjStore::get_params() if (!str.empty()) max_parts = atoi(str.c_str()); - return ret; + return op_ret; } int RGWListBucketMultiparts_ObjStore::get_params() @@ -1177,8 +1177,8 @@ int RGWDeleteMultiObj_ObjStore::get_params() { if (s->bucket_name.empty()) { - ret = -EINVAL; - return ret; + op_ret = -EINVAL; + return op_ret; } // everything is probably fine, set the bucket @@ -1191,20 +1191,20 @@ int RGWDeleteMultiObj_ObjStore::get_params() if (cl) { data = (char *)malloc(cl + 1); if (!data) { - ret = -ENOMEM; - return ret; + op_ret = -ENOMEM; + return op_ret; } int read_len; - ret = s->cio->read(data, cl, &read_len); + op_ret = s->cio->read(data, cl, &read_len); len = read_len; - if (ret < 0) - return ret; + if (op_ret < 0) + return op_ret; data[len] = '\0'; } else { return -EINVAL; } - return ret; + return op_ret; } diff --git a/src/rgw/rgw_rest_s3.cc b/src/rgw/rgw_rest_s3.cc index 4712a6c7fce..f2b56e2057a 100644 --- a/src/rgw/rgw_rest_s3.cc +++ b/src/rgw/rgw_rest_s3.cc @@ -83,8 +83,8 @@ int RGWGetObj_ObjStore_S3Website::send_response_data(bufferlist& bl, off_t bl_of s->redirect = string(bl.c_str(), bl.length()); s->err.http_ret = 301; ldout(s->cct, 20) << __CEPH_ASSERT_FUNCTION << " redirectng per x-amz-website-redirect-location=" << s->redirect << dendl; - ret = -ERR_WEBSITE_REDIRECT; - return ret; + op_ret = -ERR_WEBSITE_REDIRECT; + return op_ret; } else { return RGWGetObj_ObjStore_S3::send_response_data(bl, bl_ofs, bl_len); } @@ -109,7 +109,7 @@ int RGWGetObj_ObjStore_S3::send_response_data(bufferlist& bl, off_t bl_ofs, off_ map::iterator riter; bufferlist metadata_bl; - if (ret) + if (op_ret) goto done; if (sent_header) @@ -142,7 +142,7 @@ int RGWGetObj_ObjStore_S3::send_response_data(bufferlist& bl, off_t bl_ofs, off_ dump_content_length(s, total_len); dump_last_modified(s, lastmod); - if (!ret) { + if (! op_ret) { map::iterator iter = attrs.find(RGW_ATTR_ETAG); if (iter != attrs.end()) { bufferlist& bl = iter->second; @@ -188,7 +188,8 @@ int RGWGetObj_ObjStore_S3::send_response_data(bufferlist& bl, off_t bl_ofs, off_ } done: - set_req_state_err(s, (partial_content && !ret) ? STATUS_PARTIAL_CONTENT : ret); + set_req_state_err(s, (partial_content && !op_ret) ? STATUS_PARTIAL_CONTENT : + op_ret); dump_errno(s); @@ -207,7 +208,7 @@ done: sent_header = true; send_data: - if (get_data && !ret) { + if (get_data && !op_ret) { int r = s->cio->write(bl.c_str() + bl_ofs, bl_len); if (r < 0) return r; @@ -218,13 +219,13 @@ send_data: void RGWListBuckets_ObjStore_S3::send_response_begin(bool has_buckets) { - if (ret) - set_req_state_err(s, ret); + if (op_ret) + set_req_state_err(s, op_ret); dump_errno(s); dump_start(s); end_header(s, NULL, "application/xml"); - if (!ret) { + if (! op_ret) { list_all_buckets_start(s); dump_owner(s, s->user.user_id, s->user.display_name); s->formatter->open_array_section("Buckets"); @@ -267,9 +268,9 @@ int RGWListBucket_ObjStore_S3::get_params() marker.instance = s->info.args.get("version-id-marker"); } max_keys = s->info.args.get("max-keys"); - ret = parse_max_keys(); - if (ret < 0) { - return ret; + op_ret = parse_max_keys(); + if (op_ret < 0) { + return op_ret; } delimiter = s->info.args.get("delimiter"); encoding_type = s->info.args.get("encoding-type"); @@ -297,7 +298,7 @@ void RGWListBucket_ObjStore_S3::send_versioned_response() if (strcasecmp(encoding_type.c_str(), "url") == 0) encode_key = true; - if (ret >= 0) { + if (op_ret >= 0) { vector::iterator iter; for (iter = objs.begin(); iter != objs.end(); ++iter) { time_t mtime = iter->mtime.sec(); @@ -343,13 +344,13 @@ void RGWListBucket_ObjStore_S3::send_versioned_response() void RGWListBucket_ObjStore_S3::send_response() { - if (ret < 0) - set_req_state_err(s, ret); + if (op_ret < 0) + set_req_state_err(s, op_ret); dump_errno(s); end_header(s, this, "application/xml"); dump_start(s); - if (ret < 0) + if (op_ret < 0) return; if (list_versions) { @@ -376,7 +377,7 @@ void RGWListBucket_ObjStore_S3::send_response() if (strcasecmp(encoding_type.c_str(), "url") == 0) encode_key = true; - if (ret >= 0) { + if (op_ret >= 0) { vector::iterator iter; for (iter = objs.begin(); iter != objs.end(); ++iter) { s->formatter->open_array_section("Contents"); @@ -528,8 +529,8 @@ done: void RGWSetBucketVersioning_ObjStore_S3::send_response() { - if (ret) - set_req_state_err(s, ret); + if (op_ret) + set_req_state_err(s, op_ret); dump_errno(s); end_header(s); } @@ -570,31 +571,31 @@ int RGWSetBucketWebsite_ObjStore_S3::get_params() void RGWSetBucketWebsite_ObjStore_S3::send_response() { - if (ret) - set_req_state_err(s, ret); + if (op_ret < 0) + set_req_state_err(s, op_ret); dump_errno(s); end_header(s); } void RGWDeleteBucketWebsite_ObjStore_S3::send_response() { - if (!ret) { - ret = STATUS_NO_CONTENT; + if (op_ret == 0) { + op_ret = STATUS_NO_CONTENT; } - set_req_state_err(s, ret); + set_req_state_err(s, op_ret); dump_errno(s); end_header(s); } void RGWGetBucketWebsite_ObjStore_S3::send_response() { - if (ret) - set_req_state_err(s, ret); + if (op_ret) + set_req_state_err(s, op_ret); dump_errno(s); end_header(s, this, "application/xml"); dump_start(s); - if (ret < 0) { + if (op_ret < 0) { return; } @@ -618,11 +619,11 @@ static void dump_bucket_metadata(struct req_state *s, RGWBucketEnt& bucket) void RGWStatBucket_ObjStore_S3::send_response() { - if (ret >= 0) { + if (op_ret >= 0) { dump_bucket_metadata(s, bucket); } - set_req_state_err(s, ret); + set_req_state_err(s, op_ret); dump_errno(s); end_header(s, this); @@ -703,9 +704,9 @@ int RGWCreateBucket_ObjStore_S3::get_params() int len = 0; char *data; #define CREATE_BUCKET_MAX_REQ_LEN (512 * 1024) /* this is way more than enough */ - ret = rgw_rest_read_all_input(s, &data, &len, CREATE_BUCKET_MAX_REQ_LEN); - if ((ret < 0) && (ret != -ERR_LENGTH_REQUIRED)) - return ret; + op_ret = rgw_rest_read_all_input(s, &data, &len, CREATE_BUCKET_MAX_REQ_LEN); + if ((op_ret < 0) && (op_ret != -ERR_LENGTH_REQUIRED)) + return op_ret; bufferptr in_ptr(data, len); in_data.append(in_ptr); @@ -747,14 +748,14 @@ int RGWCreateBucket_ObjStore_S3::get_params() void RGWCreateBucket_ObjStore_S3::send_response() { - if (ret == -ERR_BUCKET_EXISTS) - ret = 0; - if (ret) - set_req_state_err(s, ret); + if (op_ret == -ERR_BUCKET_EXISTS) + op_ret = 0; + if (op_ret) + set_req_state_err(s, op_ret); dump_errno(s); end_header(s); - if (ret < 0) + if (op_ret < 0) return; if (s->system_request) { @@ -771,7 +772,7 @@ void RGWCreateBucket_ObjStore_S3::send_response() void RGWDeleteBucket_ObjStore_S3::send_response() { - int r = ret; + int r = op_ret; if (!r) r = STATUS_NO_CONTENT; @@ -820,12 +821,13 @@ static int get_success_retcode(int code) void RGWPutObj_ObjStore_S3::send_response() { - if (ret) { - set_req_state_err(s, ret); + if (op_ret) { + set_req_state_err(s, op_ret); } else { if (s->cct->_conf->rgw_s3_success_create_obj_status) { - ret = get_success_retcode(s->cct->_conf->rgw_s3_success_create_obj_status); - set_req_state_err(s, ret); + op_ret = get_success_retcode( + s->cct->_conf->rgw_s3_success_create_obj_status); + set_req_state_err(s, op_ret); } dump_etag(s, etag.c_str()); dump_content_length(s, 0); @@ -1287,8 +1289,8 @@ int RGWPostObj_ObjStore_S3::get_policy() RGWUserInfo user_info; - ret = rgw_get_user_info_by_access_key(store, s3_access_key, user_info); - if (ret < 0) { + op_ret = rgw_get_user_info_by_access_key(store, s3_access_key, user_info); + if (op_ret < 0) { // Try keystone authentication as well int keystone_result = -EINVAL; if (!store->ctx()->_conf->rgw_s3_auth_use_keystone || @@ -1456,7 +1458,7 @@ int RGWPostObj_ObjStore_S3::get_data(bufferlist& bl) void RGWPostObj_ObjStore_S3::send_response() { - if (ret == 0 && parts.count("success_action_redirect")) { + if (op_ret == 0 && parts.count("success_action_redirect")) { string redirect; part_str("success_action_redirect", &redirect); @@ -1500,12 +1502,12 @@ void RGWPostObj_ObjStore_S3::send_response() int r = check_utf8(redirect.c_str(), redirect.size()); if (r < 0) { - ret = r; + op_ret = r; goto done; } dump_redirect(s, redirect); - ret = STATUS_REDIRECT; - } else if (ret == 0 && parts.count("success_action_status")) { + op_ret = STATUS_REDIRECT; + } else if (op_ret == 0 && parts.count("success_action_status")) { string status_string; uint32_t status_int; @@ -1513,7 +1515,7 @@ void RGWPostObj_ObjStore_S3::send_response() int r = stringtoul(status_string, &status_int); if (r < 0) { - ret = r; + op_ret = r; goto done; } @@ -1521,18 +1523,18 @@ void RGWPostObj_ObjStore_S3::send_response() case 200: break; case 201: - ret = STATUS_CREATED; + op_ret = STATUS_CREATED; break; default: - ret = STATUS_NO_CONTENT; + op_ret = STATUS_NO_CONTENT; break; } - } else if (!ret) { - ret = STATUS_NO_CONTENT; + } else if (! op_ret) { + op_ret = STATUS_NO_CONTENT; } done: - if (ret == STATUS_CREATED) { + if (op_ret == STATUS_CREATED) { s->formatter->open_object_section("PostResponse"); if (g_conf->rgw_dns_name.length()) s->formatter->dump_format("Location", "%s/%s", s->info.script_uri.c_str(), s->object.name.c_str()); @@ -1543,13 +1545,13 @@ done: s->formatter->close_section(); } s->err.message = err_msg; - set_req_state_err(s, ret); + set_req_state_err(s, op_ret); dump_errno(s); - if (ret >= 0) { + if (op_ret >= 0) { dump_content_length(s, s->formatter->get_len()); } end_header(s, this); - if (ret != STATUS_CREATED) + if (op_ret != STATUS_CREATED) return; rgw_flush_formatter_and_reset(s, s->formatter); @@ -1558,7 +1560,7 @@ done: void RGWDeleteObj_ObjStore_S3::send_response() { - int r = ret; + int r = op_ret; if (r == -ENOENT) r = 0; if (!r) @@ -1649,13 +1651,13 @@ int RGWCopyObj_ObjStore_S3::get_params() void RGWCopyObj_ObjStore_S3::send_partial_response(off_t ofs) { - if (!sent_header) { - if (ret) - set_req_state_err(s, ret); + if (! sent_header) { + if (op_ret) + set_req_state_err(s, op_ret); dump_errno(s); end_header(s, this, "application/xml"); - if (ret == 0) { + if (op_ret == 0) { s->formatter->open_object_section("CopyObjectResult"); } sent_header = true; @@ -1673,7 +1675,7 @@ void RGWCopyObj_ObjStore_S3::send_response() if (!sent_header) send_partial_response(0); - if (ret == 0) { + if (op_ret == 0) { dump_time(s, "LastModified", &mtime); if (!etag.empty()) { s->formatter->dump_string("ETag", etag); @@ -1685,8 +1687,8 @@ void RGWCopyObj_ObjStore_S3::send_response() void RGWGetACLs_ObjStore_S3::send_response() { - if (ret) - set_req_state_err(s, ret); + if (op_ret) + set_req_state_err(s, op_ret); dump_errno(s); end_header(s, this, "application/xml"); dump_start(s); @@ -1715,8 +1717,8 @@ int RGWPutACLs_ObjStore_S3::get_policy_from_state(RGWRados *store, struct req_st void RGWPutACLs_ObjStore_S3::send_response() { - if (ret) - set_req_state_err(s, ret); + if (op_ret) + set_req_state_err(s, op_ret); dump_errno(s); end_header(s, this, "application/xml"); dump_start(s); @@ -1724,16 +1726,16 @@ void RGWPutACLs_ObjStore_S3::send_response() void RGWGetCORS_ObjStore_S3::send_response() { - if (ret) { - if (ret == -ENOENT) + if (op_ret) { + if (op_ret == -ENOENT) set_req_state_err(s, ERR_NOT_FOUND); - else - set_req_state_err(s, ret); + else + set_req_state_err(s, op_ret); } dump_errno(s); end_header(s, NULL, "application/xml"); dump_start(s); - if (!ret) { + if (! op_ret) { string cors; RGWCORSConfiguration_S3 *s3cors = static_cast(&bucket_cors); stringstream ss; @@ -1803,8 +1805,8 @@ done_err: void RGWPutCORS_ObjStore_S3::send_response() { - if (ret) - set_req_state_err(s, ret); + if (op_ret) + set_req_state_err(s, op_ret); dump_errno(s); end_header(s, NULL, "application/xml"); dump_start(s); @@ -1812,7 +1814,7 @@ void RGWPutCORS_ObjStore_S3::send_response() void RGWDeleteCORS_ObjStore_S3::send_response() { - int r = ret; + int r = op_ret; if (!r || r == -ENOENT) r = STATUS_NO_CONTENT; @@ -1828,10 +1830,10 @@ void RGWOptionsCORS_ObjStore_S3::send_response() /*EACCES means, there is no CORS registered yet for the bucket *ENOENT means, there is no match of the Origin in the list of CORSRule */ - if (ret == -ENOENT) - ret = -EACCES; - if (ret < 0) { - set_req_state_err(s, ret); + if (op_ret == -ENOENT) + op_ret = -EACCES; + if (op_ret < 0) { + set_req_state_err(s, op_ret); dump_errno(s); end_header(s, NULL); return; @@ -1924,8 +1926,8 @@ done: void RGWSetRequestPayment_ObjStore_S3::send_response() { - if (ret) - set_req_state_err(s, ret); + if (op_ret) + set_req_state_err(s, op_ret); dump_errno(s); end_header(s); } @@ -1933,9 +1935,9 @@ void RGWSetRequestPayment_ObjStore_S3::send_response() int RGWInitMultipart_ObjStore_S3::get_params() { RGWAccessControlPolicy_S3 s3policy(s->cct); - ret = create_s3_policy(s, store, s3policy, s->owner); - if (ret < 0) - return ret; + op_ret = create_s3_policy(s, store, s3policy, s->owner); + if (op_ret < 0) + return op_ret; policy = s3policy; @@ -1944,11 +1946,11 @@ int RGWInitMultipart_ObjStore_S3::get_params() void RGWInitMultipart_ObjStore_S3::send_response() { - if (ret) - set_req_state_err(s, ret); + if (op_ret) + set_req_state_err(s, op_ret); dump_errno(s); end_header(s, this, "application/xml"); - if (ret == 0) { + if (op_ret == 0) { dump_start(s); s->formatter->open_object_section_in_ns("InitiateMultipartUploadResult", "http://s3.amazonaws.com/doc/2006-03-01/"); @@ -1964,11 +1966,11 @@ void RGWInitMultipart_ObjStore_S3::send_response() void RGWCompleteMultipart_ObjStore_S3::send_response() { - if (ret) - set_req_state_err(s, ret); + if (op_ret) + set_req_state_err(s, op_ret); dump_errno(s); end_header(s, this, "application/xml"); - if (ret == 0) { + if (op_ret == 0) { dump_start(s); s->formatter->open_object_section_in_ns("CompleteMultipartUploadResult", "http://s3.amazonaws.com/doc/2006-03-01/"); @@ -1997,7 +1999,7 @@ void RGWCompleteMultipart_ObjStore_S3::send_response() void RGWAbortMultipart_ObjStore_S3::send_response() { - int r = ret; + int r = op_ret; if (!r) r = STATUS_NO_CONTENT; @@ -2008,12 +2010,12 @@ void RGWAbortMultipart_ObjStore_S3::send_response() void RGWListMultipart_ObjStore_S3::send_response() { - if (ret) - set_req_state_err(s, ret); + if (op_ret) + set_req_state_err(s, op_ret); dump_errno(s); end_header(s, this, "application/xml"); - if (ret == 0) { + if (op_ret == 0) { dump_start(s); s->formatter->open_object_section_in_ns("ListPartsResult", "http://s3.amazonaws.com/doc/2006-03-01/"); @@ -2066,13 +2068,13 @@ void RGWListMultipart_ObjStore_S3::send_response() void RGWListBucketMultiparts_ObjStore_S3::send_response() { - if (ret < 0) - set_req_state_err(s, ret); + if (op_ret < 0) + set_req_state_err(s, op_ret); dump_errno(s); end_header(s, this, "application/xml"); dump_start(s); - if (ret < 0) + if (op_ret < 0) return; s->formatter->open_object_section("ListMultipartUploadsResult"); @@ -2098,7 +2100,7 @@ void RGWListBucketMultiparts_ObjStore_S3::send_response() s->formatter->dump_string("Delimiter", delimiter); s->formatter->dump_string("IsTruncated", (is_truncated ? "true" : "false")); - if (ret >= 0) { + if (op_ret >= 0) { vector::iterator iter; for (iter = uploads.begin(); iter != uploads.end(); ++iter) { RGWMPObj& mp = iter->mp; @@ -2127,9 +2129,9 @@ void RGWListBucketMultiparts_ObjStore_S3::send_response() void RGWDeleteMultiObj_ObjStore_S3::send_status() { - if (!status_dumped) { - if (ret < 0) - set_req_state_err(s, ret); + if (! status_dumped) { + if (op_ret < 0) + set_req_state_err(s, op_ret); dump_errno(s); status_dumped = true; } @@ -2154,7 +2156,7 @@ void RGWDeleteMultiObj_ObjStore_S3::send_partial_response(rgw_obj_key& key, bool const string& marker_version_id, int ret) { if (!key.empty()) { - if (ret == 0 && !quiet) { + if (op_ret == 0 && !quiet) { s->formatter->open_object_section("Deleted"); s->formatter->dump_string("Key", key.name); if (!key.instance.empty()) { @@ -2165,13 +2167,13 @@ void RGWDeleteMultiObj_ObjStore_S3::send_partial_response(rgw_obj_key& key, bool s->formatter->dump_string("DeleteMarkerVersionId", marker_version_id); } s->formatter->close_section(); - } else if (ret < 0) { + } else if (op_ret < 0) { struct rgw_http_errors r; int err_no; s->formatter->open_object_section("Error"); - err_no = -ret; + err_no = -op_ret; rgw_get_errno_s3(&r, err_no); s->formatter->dump_string("Key", key.name); diff --git a/src/rgw/rgw_rest_swift.cc b/src/rgw/rgw_rest_swift.cc index a0bcc04fb4b..bbb6a5be044 100644 --- a/src/rgw/rgw_rest_swift.cc +++ b/src/rgw/rgw_rest_swift.cc @@ -102,11 +102,11 @@ static void dump_account_metadata(struct req_state * const s, void RGWListBuckets_ObjStore_SWIFT::send_response_begin(bool has_buckets) { - if (ret) { - set_req_state_err(s, ret); + if (op_ret) { + set_req_state_err(s, op_ret); } else if (!has_buckets && s->format == RGW_FORMAT_PLAIN) { - ret = STATUS_NO_CONTENT; - set_req_state_err(s, ret); + op_ret = STATUS_NO_CONTENT; + set_req_state_err(s, op_ret); } if (!g_conf->rgw_swift_enforce_content_length) { @@ -121,7 +121,7 @@ void RGWListBuckets_ObjStore_SWIFT::send_response_begin(bool has_buckets) end_header(s, NULL, NULL, NO_CONTENT_LENGTH, true); } - if (!ret) { + if (! op_ret) { dump_start(s); s->formatter->open_array_section_with_attrs("account", FormatterAttrs("name", s->user.display_name.c_str(), NULL)); @@ -182,9 +182,9 @@ int RGWListBucket_ObjStore_SWIFT::get_params() marker = s->info.args.get("marker"); end_marker = s->info.args.get("end_marker"); max_keys = s->info.args.get("limit"); - ret = parse_max_keys(); - if (ret < 0) { - return ret; + op_ret = parse_max_keys(); + if (op_ret < 0) { + return op_ret; } if (max > default_max) return -ERR_PRECONDITION_FAILED; @@ -296,19 +296,19 @@ next: s->formatter->close_section(); int64_t content_len = 0; - if (!ret) { + if (! op_ret) { content_len = s->formatter->get_len(); if (content_len == 0) { - ret = STATUS_NO_CONTENT; + op_ret = STATUS_NO_CONTENT; } - } else if (ret > 0) { - ret = 0; + } else if (op_ret > 0) { + op_ret = 0; } - set_req_state_err(s, ret); + set_req_state_err(s, op_ret); dump_errno(s); end_header(s, this, NULL, content_len); - if (ret < 0) { + if (op_ret < 0) { return; } @@ -364,17 +364,17 @@ void RGWStatAccount_ObjStore_SWIFT::execute() { RGWStatAccount_ObjStore::execute(); - ret = rgw_get_user_attrs_by_uid(store, s->user.user_id, attrs); + op_ret = rgw_get_user_attrs_by_uid(store, s->user.user_id, attrs); } void RGWStatAccount_ObjStore_SWIFT::send_response() { - if (ret >= 0) { - ret = STATUS_NO_CONTENT; + if (op_ret >= 0) { + op_ret = STATUS_NO_CONTENT; dump_account_metadata(s, buckets_count, buckets_objcount, buckets_size, buckets_size_rounded, attrs); } - set_req_state_err(s, ret); + set_req_state_err(s, op_ret); dump_errno(s); end_header(s, NULL, NULL, 0, true); @@ -384,15 +384,15 @@ void RGWStatAccount_ObjStore_SWIFT::send_response() void RGWStatBucket_ObjStore_SWIFT::send_response() { - if (ret >= 0) { - ret = STATUS_NO_CONTENT; + if (op_ret >= 0) { + op_ret = STATUS_NO_CONTENT; dump_container_metadata(s, bucket); } - set_req_state_err(s, ret); + set_req_state_err(s, op_ret); dump_errno(s); - end_header(s, this,NULL,0, true); + end_header(s, this, NULL, 0, true); dump_start(s); } @@ -467,12 +467,11 @@ int RGWCreateBucket_ObjStore_SWIFT::get_params() void RGWCreateBucket_ObjStore_SWIFT::send_response() { - if (exist_ret == -ERR_BUCKET_EXISTS) { - ret = STATUS_ACCEPTED; - } else if (!ret) { - ret = STATUS_CREATED; - } - set_req_state_err(s, ret); + if (! op_ret) + op_ret = STATUS_CREATED; + else if (op_ret == -ERR_BUCKET_EXISTS) + op_ret = STATUS_ACCEPTED; + set_req_state_err(s, op_ret); dump_errno(s); /* Propose ending HTTP header with 0 Content-Length header. */ end_header(s, NULL, NULL, 0); @@ -481,7 +480,7 @@ void RGWCreateBucket_ObjStore_SWIFT::send_response() void RGWDeleteBucket_ObjStore_SWIFT::send_response() { - int r = ret; + int r = op_ret; if (!r) r = STATUS_NO_CONTENT; @@ -606,11 +605,11 @@ int RGWPutObj_ObjStore_SWIFT::get_params() void RGWPutObj_ObjStore_SWIFT::send_response() { - if (!ret) - ret = STATUS_CREATED; + if (! op_ret) + op_ret = STATUS_CREATED; dump_etag(s, etag.c_str()); dump_last_modified(s, mtime); - set_req_state_err(s, ret); + set_req_state_err(s, op_ret); dump_errno(s); end_header(s, this); rgw_flush_formatter_and_reset(s, s->formatter); @@ -664,10 +663,10 @@ int RGWPutMetadataAccount_ObjStore_SWIFT::get_params() void RGWPutMetadataAccount_ObjStore_SWIFT::send_response() { - if (!ret) { - ret = STATUS_NO_CONTENT; + if (! op_ret) { + op_ret = STATUS_NO_CONTENT; } - set_req_state_err(s, ret); + set_req_state_err(s, op_ret); dump_errno(s); end_header(s, this); rgw_flush_formatter_and_reset(s, s->formatter); @@ -691,10 +690,10 @@ int RGWPutMetadataBucket_ObjStore_SWIFT::get_params() void RGWPutMetadataBucket_ObjStore_SWIFT::send_response() { - if (!ret) { - ret = STATUS_NO_CONTENT; + if (! op_ret) { + op_ret = STATUS_NO_CONTENT; } - set_req_state_err(s, ret); + set_req_state_err(s, op_ret); dump_errno(s); end_header(s, this); rgw_flush_formatter_and_reset(s, s->formatter); @@ -721,10 +720,10 @@ int RGWPutMetadataObject_ObjStore_SWIFT::get_params() void RGWPutMetadataObject_ObjStore_SWIFT::send_response() { - if (!ret) { - ret = STATUS_ACCEPTED; + if (! op_ret) { + op_ret = STATUS_ACCEPTED; } - set_req_state_err(s, ret); + set_req_state_err(s, op_ret); if (!s->err.is_err()) { dump_content_length(s, 0); } @@ -798,7 +797,7 @@ int RGWDeleteObj_ObjStore_SWIFT::get_params() void RGWDeleteObj_ObjStore_SWIFT::send_response() { - int r = ret; + int r = op_ret; if (multipart_delete) { r = 0; @@ -817,7 +816,7 @@ void RGWDeleteObj_ObjStore_SWIFT::send_response() deleter->get_failures(), s->prot_flags, *s->formatter); - } else if (-ENOENT == ret) { + } else if (-ENOENT == op_ret) { bulkdelete_respond(0, 1, {}, s->prot_flags, *s->formatter); } else { RGWBulkDelete::acct_path_t path; @@ -825,7 +824,7 @@ void RGWDeleteObj_ObjStore_SWIFT::send_response() path.obj_key = s->object; RGWBulkDelete::fail_desc_t fail_desc; - fail_desc.err = ret; + fail_desc.err = op_ret; fail_desc.path = path; bulkdelete_respond(0, 0, { fail_desc }, s->prot_flags, *s->formatter); @@ -920,17 +919,17 @@ int RGWCopyObj_ObjStore_SWIFT::get_params() void RGWCopyObj_ObjStore_SWIFT::send_partial_response(off_t ofs) { - if (!sent_header) { - if (!ret) - ret = STATUS_CREATED; - set_req_state_err(s, ret); + if (! sent_header) { + if (! op_ret) + op_ret = STATUS_CREATED; + set_req_state_err(s, op_ret); dump_errno(s); end_header(s, this); /* Send progress information. Note that this diverge from the original swift * spec. We do this in order to keep connection alive. */ - if (ret == 0) { + if (op_ret == 0) { s->formatter->open_array_section("progress"); } sent_header = true; @@ -959,11 +958,11 @@ void RGWCopyObj_ObjStore_SWIFT::dump_copy_info() void RGWCopyObj_ObjStore_SWIFT::send_response() { - if (!sent_header) { + if (! sent_header) { string content_type; - if (!ret) - ret = STATUS_CREATED; - set_req_state_err(s, ret); + if (! op_ret) + op_ret = STATUS_CREATED; + set_req_state_err(s, op_ret); dump_errno(s); dump_etag(s, etag.c_str()); dump_last_modified(s, mtime); @@ -999,7 +998,8 @@ int RGWGetObj_ObjStore_SWIFT::send_response_data(bufferlist& bl, off_t bl_ofs, o goto send_data; } - set_req_state_err(s, (partial_content && !ret) ? STATUS_PARTIAL_CONTENT : ret); + set_req_state_err(s, (partial_content && !op_ret) ? STATUS_PARTIAL_CONTENT : + op_ret); dump_errno(s); if (s->err.is_err()) { end_header(s, NULL); @@ -1017,7 +1017,7 @@ int RGWGetObj_ObjStore_SWIFT::send_response_data(bufferlist& bl, off_t bl_ofs, o s->cio->print("X-Static-Large-Object: True\r\n"); } - if (!ret) { + if (! op_ret) { map::iterator iter = attrs.find(RGW_ATTR_ETAG); if (iter != attrs.end()) { bufferlist& bl = iter->second; @@ -1036,7 +1036,7 @@ int RGWGetObj_ObjStore_SWIFT::send_response_data(bufferlist& bl, off_t bl_ofs, o sent_header = true; send_data: - if (get_data && !ret) { + if (get_data && !op_ret) { int r = s->cio->write(bl.c_str() + bl_ofs, bl_len); if (r < 0) return r; @@ -1053,10 +1053,10 @@ void RGWOptionsCORS_ObjStore_SWIFT::send_response() /*EACCES means, there is no CORS registered yet for the bucket *ENOENT means, there is no match of the Origin in the list of CORSRule */ - if (ret == -ENOENT) - ret = -EACCES; - if (ret < 0) { - set_req_state_err(s, ret); + if (op_ret == -ENOENT) + op_ret = -EACCES; + if (op_ret < 0) { + set_req_state_err(s, op_ret); dump_errno(s); end_header(s, NULL); return; @@ -1111,7 +1111,7 @@ int RGWBulkDelete_ObjStore_SWIFT::get_data(list& ite void RGWBulkDelete_ObjStore_SWIFT::send_response() { - set_req_state_err(s, ret); + set_req_state_err(s, op_ret); dump_errno(s); end_header(s, NULL);