From: xinxin shu Date: Mon, 15 Jun 2015 23:31:28 +0000 (+0800) Subject: mon/OSDMonitor : error out if pgp_num > pg_num X-Git-Tag: v9.0.3~128^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=a9475e1ffc8663634911f931812f715cfd20c895;p=ceph.git mon/OSDMonitor : error out if pgp_num > pg_num Fixes : #12025 Signed-off-by: xinxin shu --- diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index ef68d4689c2..6b82975e00c 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -4326,6 +4326,12 @@ int OSDMonitor::prepare_new_pool(string& name, uint64_t auid, { if (name.length() == 0) return -EINVAL; + if (pg_num == 0) + pg_num = g_conf->osd_pool_default_pg_num; + if (pgp_num == 0) + pgp_num = g_conf->osd_pool_default_pgp_num; + if (pgp_num > pg_num) + return -ERANGE; int r; r = prepare_pool_crush_ruleset(pool_type, erasure_code_profile, crush_ruleset_name, &crush_ruleset, ss); @@ -4368,8 +4374,8 @@ int OSDMonitor::prepare_new_pool(string& name, uint64_t auid, pi->crush_ruleset = crush_ruleset; pi->expected_num_objects = expected_num_objects; pi->object_hash = CEPH_STR_HASH_RJENKINS; - pi->set_pg_num(pg_num ? pg_num : g_conf->osd_pool_default_pg_num); - pi->set_pgp_num(pgp_num ? pgp_num : g_conf->osd_pool_default_pgp_num); + pi->set_pg_num(pg_num); + pi->set_pgp_num(pgp_num); pi->last_change = pending_inc.epoch; pi->auid = auid; pi->erasure_code_profile = erasure_code_profile;