mirror of
https://github.com/ceph/ceph
synced 2025-02-19 08:57:27 +00:00
rgw: add exclusive flag to RGWRealm::create_control
this was causing failures in 'radosgw-admin realm pull': ERROR creating control for new realm realm0: (17) File exists 'realm pull' calls RGWRealm::create() with exclusive=false, but RGWRealm::create_control() was using exclusive=true Signed-off-by: Casey Bodley <cbodley@redhat.com>
This commit is contained in:
parent
1f3aad6b10
commit
7567b45fc0
@ -703,7 +703,7 @@ int RGWRealm::create(bool exclusive)
|
||||
return ret;
|
||||
}
|
||||
// create the control object for watch/notify
|
||||
ret = create_control();
|
||||
ret = create_control(exclusive);
|
||||
if (ret < 0) {
|
||||
ldout(cct, 0) << "ERROR creating control for new realm " << name << ": " << cpp_strerror(-ret) << dendl;
|
||||
return ret;
|
||||
@ -753,12 +753,12 @@ int RGWRealm::delete_obj()
|
||||
return delete_control();
|
||||
}
|
||||
|
||||
int RGWRealm::create_control()
|
||||
int RGWRealm::create_control(bool exclusive)
|
||||
{
|
||||
auto pool_name = get_pool_name(cct);
|
||||
auto pool = rgw_bucket{pool_name.c_str()};
|
||||
auto oid = get_control_oid();
|
||||
return rgw_put_system_obj(store, pool, oid, nullptr, 0, true,
|
||||
return rgw_put_system_obj(store, pool, oid, nullptr, 0, exclusive,
|
||||
nullptr, real_time(), nullptr);
|
||||
}
|
||||
|
||||
|
@ -1301,7 +1301,7 @@ class RGWRealm : public RGWSystemMetaObj
|
||||
string current_period;
|
||||
epoch_t epoch{0}; //< realm epoch, incremented for each new period
|
||||
|
||||
int create_control();
|
||||
int create_control(bool exclusive);
|
||||
int delete_control();
|
||||
public:
|
||||
RGWRealm() {}
|
||||
|
Loading…
Reference in New Issue
Block a user