we should return the negative error number if "ioctx_create" creates "control_pool_ctx" failed. otherwise, it will run into exception:
r = control_pool_ctx.create(notify_oid, false);
if (r < 0 && r != -EEXIST)
return r;
Signed-off-by: Yan Jun <yan.jun8@zte.com.cn>
librados::Rados *rad = &rados[0];
int r = rad->ioctx_create(control_pool, control_pool_ctx);
-
if (r == -ENOENT) {
r = rad->pool_create(control_pool);
if (r == -EEXIST)
r = rad->ioctx_create(control_pool, control_pool_ctx);
if (r < 0)
return r;
+ } else if (r < 0) {
+ return r;
}
num_watchers = cct->_conf->rgw_num_control_oids;