From: Yehuda Sadeh Date: Tue, 26 Nov 2024 15:07:36 +0000 (-0500) Subject: rgw: fix bucket link operation X-Git-Tag: v18.2.5~137^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=bf287a2f1f376c4391dc895c04394b163c63c25e;p=ceph.git rgw: fix bucket link operation Allow linking unlinked bucket. Fixes: https://tracker.ceph.com/issues/69060 Signed-off-by: Yehuda Sadeh (cherry picked from commit b564084cbfa747be831f54e4be40c217efd189e0) Conflicts: src/rgw/driver/rados/rgw_bucket.cc get_bucket() instead of load_bucket() --- diff --git a/src/rgw/driver/rados/rgw_bucket.cc b/src/rgw/driver/rados/rgw_bucket.cc index bfc236e390f..e4f70b5f4e3 100644 --- a/src/rgw/driver/rados/rgw_bucket.cc +++ b/src/rgw/driver/rados/rgw_bucket.cc @@ -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;