From 1223baf76b45559f171c67c5e737f8e5f7d843e0 Mon Sep 17 00:00:00 2001 From: Orit Wasserman Date: Sun, 21 Jan 2018 10:12:43 +0200 Subject: [PATCH] rgw: bucket resharding should not update bucket ACL or user stats bucket link op resets bucket ACL using rgw_link_bucket instead Fixes: http://tracker.ceph.com/issues/22124 Fixes: http://tracker.ceph.com/issues/22742 Signed-off-by: Orit Wasserman --- src/rgw/rgw_reshard.cc | 16 +++++----------- src/rgw/rgw_reshard.h | 2 +- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/src/rgw/rgw_reshard.cc b/src/rgw/rgw_reshard.cc index 71726634a5a2..04e95aabfd18 100644 --- a/src/rgw/rgw_reshard.cc +++ b/src/rgw/rgw_reshard.cc @@ -345,7 +345,7 @@ public: int RGWBucketReshard::do_reshard( int num_shards, - const RGWBucketInfo& new_bucket_info, + RGWBucketInfo& new_bucket_info, int max_entries, bool verbose, ostream *out, @@ -469,16 +469,10 @@ int RGWBucketReshard::do_reshard( return EIO; } - RGWBucketAdminOpState bucket_op; - - bucket_op.set_bucket_name(new_bucket_info.bucket.name); - bucket_op.set_bucket_id(new_bucket_info.bucket.bucket_id); - bucket_op.set_user_id(new_bucket_info.owner); - string err; - int r = RGWBucketAdminOp::link(store, bucket_op, &err); - if (r < 0) { - lderr(store->ctx()) << "failed to link new bucket instance (bucket_id=" << new_bucket_info.bucket.bucket_id << ": " << err << "; " << cpp_strerror(-r) << ")" << dendl; - return -r; + ret = rgw_link_bucket(store, new_bucket_info.owner, new_bucket_info.bucket, bucket_info.creation_time); + if (ret < 0) { + lderr(store->ctx()) << "failed to link new bucket instance (bucket_id=" << new_bucket_info.bucket.bucket_id << ": " << cpp_strerror(-ret) << ")" << dendl; + return -ret; } ret = bucket_info_updater.complete(); diff --git a/src/rgw/rgw_reshard.h b/src/rgw/rgw_reshard.h index 8c1734b8951b..e5d658531c8a 100644 --- a/src/rgw/rgw_reshard.h +++ b/src/rgw/rgw_reshard.h @@ -31,7 +31,7 @@ class RGWBucketReshard { int create_new_bucket_instance(int new_num_shards, RGWBucketInfo& new_bucket_info); int do_reshard(int num_shards, - const RGWBucketInfo& new_bucket_info, + RGWBucketInfo& new_bucket_info, int max_entries, bool verbose, ostream *os, -- 2.47.3