Skip to content

Commit

Permalink
Mon: When create pool use the crush rule consider the pool size
Browse files Browse the repository at this point in the history
Fixes: #14509
Signed-off-by: song baisen song.baisen@zte.com.cn
  • Loading branch information
songbaisen committed Jan 27, 2016
1 parent 8676120 commit 10ebfd5
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions src/mon/OSDMonitor.cc
Expand Up @@ -4613,6 +4613,18 @@ int OSDMonitor::prepare_new_pool(string& name, uint64_t auid,
dout(10) << " prepare_pool_size returns " << r << dendl;
return r;
}
const int64_t minsize = osdmap.crush->get_rule_mask_min_size(crush_ruleset);
if ((int64_t)size < minsize) {
ss << "pool size " << size << " is smaller than crush ruleset name "
<< crush_ruleset_name << " min size " << minsize;
return -EINVAL;
}
const int64_t maxsize = osdmap.crush->get_rule_mask_max_size(crush_ruleset);
if ((int64_t)size > maxsize) {
ss << "pool size " << size << " is bigger than crush ruleset name "
<< crush_ruleset_name << " max size " << maxsize;
return -EINVAL;
}
uint32_t stripe_width = 0;
r = prepare_pool_stripe_width(pool_type, erasure_code_profile, &stripe_width, ss);
if (r) {
Expand Down

0 comments on commit 10ebfd5

Please sign in to comment.