]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
Merge pull request #22613 from zhangsw/fix-rgw-copyobj-tailtag
authorYuri Weinstein <yweinste@redhat.com>
Fri, 16 Nov 2018 16:06:51 +0000 (08:06 -0800)
committerGitHub <noreply@github.com>
Fri, 16 Nov 2018 16:06:51 +0000 (08:06 -0800)
rgw: Copying object data should generate new tail tag for the new object.

Reviewed-by: Matt Benjamin <mbenjami@redhat.com>
1  2 
src/rgw/rgw_rados.cc

index d7d59850201eebec4b51eee78b9c2ed15819efad,d0c8f2c72319d16e7e3d8ad484e917ee982cb659..d352f9d15ed5c0dc82f7c899a5c52fa978dc1159
@@@ -4683,15 -8428,11 +4683,16 @@@ int RGWRados::copy_obj(RGWObjectCtx& ob
      }
    }
  
 +  if (version_id && !version_id->empty()) {
 +    dest_obj.key.set_instance(*version_id);
 +  } else if (dest_bucket_info.versioning_enabled()) {
 +    gen_rand_obj_instance_name(&dest_obj);
 +  }
 +
    if (copy_data) { /* refcounting tail wouldn't work here, just copy the data */
+     attrs.erase(RGW_ATTR_TAIL_TAG);
      return copy_obj_data(obj_ctx, dest_bucket_info, read_op, obj_size - 1, dest_obj,
 -                         mtime, real_time(), attrs, olh_epoch, delete_at,
 -                         version_id, petag);
 +                         mtime, real_time(), attrs, olh_epoch, delete_at, petag);
    }
  
    RGWObjManifest::obj_iterator miter = astate->manifest.obj_begin();