]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: the big op_ret change
authorMatt Benjamin <mbenjamin@redhat.com>
Thu, 21 Jan 2016 20:20:27 +0000 (15:20 -0500)
committerYehuda Sadeh <yehuda@redhat.com>
Thu, 21 Jan 2016 23:16:17 +0000 (15:16 -0800)
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 <mbenjamin@redhat.com>
Conflicts:
src/rgw/rgw_op.cc
src/rgw/rgw_op.h
src/rgw/rgw_rest_swift.cc

src/rgw/rgw_main.cc
src/rgw/rgw_op.cc
src/rgw/rgw_op.h
src/rgw/rgw_rest.cc
src/rgw/rgw_rest_s3.cc
src/rgw/rgw_rest_swift.cc

index 522128219cca7fdd491bdb3e35e105b45a63d0e4..8955d6769456a344a59088ac68bbbbd466a898f1 100644 (file)
@@ -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);
 }
index 34a5ff3e7ca0e1b11b1203dc6da599e7350b5693..6a9b24c69e198b7b4b4ff925b489bc4eea269c25 100644 (file)
@@ -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<string, bufferlist>& attrs) {
@@ -1176,12 +1175,12 @@ void RGWGetObj::execute()
   RGWRados::Object op_target(store, s->bucket_info, *static_cast<RGWObjectCtx *>(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<string, RGWBucketEnt>& 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<string, RGWBucketEnt>::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<string, RGWBucketEnt> 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<string, RGWBucketEnt>& 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<RGWObjectCtx *>(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<RGWObjectCtx *>(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<RGWObjectCtx *>(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<int, string>& 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<string, bufferlist> 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<string, bufferlist> 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<string, bufferlist> 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<string, bufferlist> src_attrs;
 
   RGWObjectCtx& obj_ctx = *static_cast<RGWObjectCtx *>(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<RGWAccessControlPolicy_S3 *>(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<string, bufferlist> 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<string, bufferlist>& attrs)
+static int get_multipart_info(RGWRados *store, struct req_state *s,
+                             string& meta_oid,
+                              RGWAccessControlPolicy *policy,
+                             map<string, bufferlist>& attrs)
 {
   map<string, bufferlist>::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<RGWMultiCompleteUpload *>(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<RGWObjectCtx *>(s->obj_ctx), s->bucket_info, meta_obj, 0);
+  int r = store->delete_obj(*static_cast<RGWObjectCtx *>(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<rgw_obj_key> 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<RGWObjEnt> 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<RGWObjEnt>::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<RGWObjectCtx *>(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<RGWMultiDelDelete *>(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<string, bufferlist>& 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<RGWObjectCtx *>(s->obj_ctx);
 
   RGWBucketInfo binfo;
   map<string, bufferlist> 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;
 }
index 5395817bb97559ccec25e1bfc3a6af4aeb781b1b..7f96d25f4af6e614be14336d23b25cac16b5f1c0 100644 (file)
@@ -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> 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;
index 798c604977cb12470f8a946d53d6996cf081c9a1..84c9f3a422ff34d73651903e27282c321bcfbb51 100644 (file)
@@ -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;
 }
 
 
index 4712a6c7fceba52febe277fa9d33b9c51847dab6..f2b56e2057aeccde883cfefae31c38a93d754ddb 100644 (file)
@@ -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<string, string>::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<string, bufferlist>::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<RGWObjEnt>::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<RGWObjEnt>::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<RGWCORSConfiguration_S3 *>(&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<RGWMultipartUploadEntry>::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);
index a0bcc04fb4b5aa927c7ab700cbeecee3489d3f07..bbb6a5be044ea5aeb9208449d881c6c80f02e4cf 100644 (file)
@@ -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<string, bufferlist>::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<RGWBulkDelete::acct_path_t>& 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);