]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: multipart part copy, fix regression 13219/head
authorYehuda Sadeh <yehuda@redhat.com>
Fri, 30 Sep 2016 05:20:10 +0000 (22:20 -0700)
committerMatt Benjamin <mbenjamin@redhat.com>
Mon, 27 Mar 2017 22:53:20 +0000 (18:53 -0400)
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
(cherry picked from commit 66fbe9384703c004c01783eb664f55895d310439)

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
src/rgw/rgw_common.h
src/rgw/rgw_rest_s3.cc

index a2b952e3bc8dda8e2b42f87624e913d2f86927a4..645f236f3f389a879aa5d9b6a6da8c613ea1a49b 100644 (file)
@@ -1314,8 +1314,6 @@ struct req_state {
   string req_id;
   string trans_id;
 
-  const char *copy_source;
-
   req_state(CephContext* _cct, RGWEnv* e, RGWUserInfo* u);
   ~req_state();
 };
index 1ed8d2082d0e8284fe26486902c2873459e04ac8..933d604d5db7ba88c68b5af819593c74b159c7cb 100644 (file)
@@ -3168,16 +3168,16 @@ int RGWHandler_REST_S3::init(RGWRados *store, struct req_state *s,
 
   s->has_acl_header = s->info.env->exists_prefix("HTTP_X_AMZ_GRANT");
 
-  if (!s->info.env->get("HTTP_X_AMZ_COPY_SOURCE_RANGE") &&
-       s->info.env->get("HTTP_X_AMZ_COPY_SOURCE")) {
-
-      ret = RGWCopyObj::parse_copy_location(s->copy_source,
-                                            s->init_state.src_bucket,
-                                            s->src_object);
-      if (!ret) {
-          ldout(s->cct, 0) << "failed to parse copy location" << dendl;
-          return -EINVAL; // XXX why not -ERR_INVALID_BUCKET_NAME or -ERR_BAD_URL?
-      }
+  const char *copy_source = s->info.env->get("HTTP_X_AMZ_COPY_SOURCE");
+
+  if (copy_source && !s->info.env->get("HTTP_X_AMZ_COPY_SOURCE_RANGE")) {
+    ret = RGWCopyObj::parse_copy_location(copy_source,
+                                          s->init_state.src_bucket,
+                                          s->src_object);
+    if (!ret) {
+      ldout(s->cct, 0) << "failed to parse copy location" << dendl;
+      return -EINVAL; // XXX why not -ERR_INVALID_BUCKET_NAME or -ERR_BAD_URL?
+    }
   }
 
   return RGWHandler_REST::init(store, s, cio);