From 7567b45fc08c5d9c18d4117440c863189e43fdb6 Mon Sep 17 00:00:00 2001 From: Casey Bodley Date: Thu, 31 Mar 2016 12:16:08 -0400 Subject: [PATCH] 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 --- src/rgw/rgw_rados.cc | 6 +++--- src/rgw/rgw_rados.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc index 0698941bd670e..354ed78ea8a23 100644 --- a/src/rgw/rgw_rados.cc +++ b/src/rgw/rgw_rados.cc @@ -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); } diff --git a/src/rgw/rgw_rados.h b/src/rgw/rgw_rados.h index a1aa819402137..e26592174f32b 100644 --- a/src/rgw/rgw_rados.h +++ b/src/rgw/rgw_rados.h @@ -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() {} -- 2.39.5