]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: fetch object attrs on multipart completion
authorYehuda Sadeh <yehuda@inktank.com>
Fri, 30 May 2014 23:17:47 +0000 (16:17 -0700)
committerSage Weil <sage@inktank.com>
Wed, 25 Jun 2014 21:54:47 +0000 (14:54 -0700)
Fixes: #8452
Backport: firefly
This fixes a regression following a code cleanup.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
(cherry picked from commit 70afaaabf979d4cc1a14dbc2b772224cbafcac2f)

src/rgw/rgw_op.cc

index 26f587d0f15a64a2d5bfe57faba62b0597260204..a781e9fab3dd6f0d70ec6b358563cca612d04337 100644 (file)
@@ -2693,6 +2693,14 @@ void RGWCompleteMultipart::execute()
 
   iter = parts->parts.begin();
 
+  meta_obj.init_ns(s->bucket, meta_oid, mp_ns);
+
+  ret = get_obj_attrs(store, s, meta_obj, attrs, NULL, NULL);
+  if (ret < 0) {
+    ldout(s->cct, 0) << "ERROR: failed to get obj attrs, obj=" << meta_obj << " ret=" << ret << dendl;
+    return;
+  }
+
   do {
     ret = list_multipart_parts(store, s, upload_id, meta_oid, max_parts, marker, obj_parts, &marker, &truncated);
     if (ret == -ENOENT) {
@@ -2782,7 +2790,6 @@ void RGWCompleteMultipart::execute()
     return;
 
   // remove the upload obj
-  meta_obj.init_ns(s->bucket, meta_oid, mp_ns);
   meta_obj.set_in_extra_data(true);
   store->delete_obj(s->obj_ctx, s->bucket_owner.get_id(), meta_obj);
 }