Skip to content

Commit

Permalink
rgw: add exclusive flag to RGWRealm::create_control
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
cbodley committed Mar 31, 2016
1 parent e925c67 commit 7cd1299
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 4 deletions.
6 changes: 3 additions & 3 deletions src/rgw/rgw_rados.cc
Expand Up @@ -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;
Expand Down Expand Up @@ -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);
}

Expand Down
2 changes: 1 addition & 1 deletion src/rgw/rgw_rados.h
Expand Up @@ -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() {}
Expand Down

0 comments on commit 7cd1299

Please sign in to comment.