From d6022dd87b62ffb04a2a62153220c6af5371fbfe Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Wed, 19 Sep 2018 16:34:21 -0500 Subject: [PATCH] mgr/DaemonServer: block pg_num decrease(merge) until pgp_num is reduced We can't merge until the PGs are stored together. (The mon would stop us if we tried, but let's not waste time trying.) Signed-off-by: Sage Weil --- src/mgr/DaemonServer.cc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/mgr/DaemonServer.cc b/src/mgr/DaemonServer.cc index 8a3be01c998..0d9eefd982f 100644 --- a/src/mgr/DaemonServer.cc +++ b/src/mgr/DaemonServer.cc @@ -2279,7 +2279,14 @@ void DaemonServer::adjust_pgs() pg_t merge_target = merge_source.get_parent(); bool ok = true; auto q = pg_map.pg_stat.find(merge_source); - if (q == pg_map.pg_stat.end()) { + if (p.get_pg_num() == p.get_pgp_num()) { + dout(10) << "pool " << i.first + << " pg_num_target " << p.get_pg_num_target() + << " pg_num " << p.get_pg_num() + << " - decrease blocked by pgp_num " + << p.get_pgp_num() + << dendl; + ok = false; } else if (q == pg_map.pg_stat.end()) { dout(10) << "pool " << i.first << " pg_num_target " << p.get_pg_num_target() -- 2.39.5