]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: fix bucket link operation 61052/head
authorYehuda Sadeh <ysadehwe@ibm.com>
Tue, 26 Nov 2024 15:07:36 +0000 (10:07 -0500)
committerCasey Bodley <cbodley@redhat.com>
Wed, 11 Dec 2024 21:58:49 +0000 (16:58 -0500)
Allow linking unlinked bucket.

Fixes: https://tracker.ceph.com/issues/69060
Signed-off-by: Yehuda Sadeh <ysadehwe@ibm.com>
(cherry picked from commit b564084cbfa747be831f54e4be40c217efd189e0)

Conflicts:
src/rgw/driver/rados/rgw_bucket.cc get_bucket() instead of load_bucket()

src/rgw/driver/rados/rgw_bucket.cc

index bfc236e390f2fc06f7f0c9d5c8e608e506aa5098..e4f70b5f4e3b437b26130c9c0a42ac8a5d834186 100644 (file)
@@ -177,7 +177,8 @@ int RGWBucket::init(rgw::sal::Driver* _driver, RGWBucketAdminOpState& op_state,
 
   driver = _driver;
 
-  std::string bucket_name = op_state.get_bucket_name();
+  auto bucket_name = op_state.get_bucket_name();
+  auto bucket_id = op_state.get_bucket_id();
 
   if (bucket_name.empty() && op_state.get_user_id().empty())
     return -EINVAL;
@@ -192,7 +193,8 @@ int RGWBucket::init(rgw::sal::Driver* _driver, RGWBucketAdminOpState& op_state,
     bucket_name = bucket_name.substr(pos + 1);
   }
 
-  int r = driver->get_bucket(dpp, user.get(), tenant, bucket_name, &bucket, y);
+  int r = driver->get_bucket(dpp, user.get(), rgw_bucket(tenant, bucket_name, bucket_id),
+                              &bucket, y);
   if (r < 0) {
       set_err_msg(err_msg, "failed to fetch bucket info for bucket=" + bucket_name);
       return r;