From 9c616d269abff0113b644e3c99be4bfdcd82897d Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 22 Mar 2016 11:44:07 -0400 Subject: [PATCH] mon/PGMonitor: do not send pg_creates for split PGs They will split from the parent on their own, and the OSD drops these PGs on the floor anyway in OSD::handle_pg_create(). Signed-off-by: Sage Weil --- src/mon/PGMap.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/mon/PGMap.cc b/src/mon/PGMap.cc index 81162012b0e7..fbef9bab0c4b 100644 --- a/src/mon/PGMap.cc +++ b/src/mon/PGMap.cc @@ -468,7 +468,8 @@ void PGMap::stat_pg_add(const pg_t &pgid, const pg_stat_t &s, num_pg++; num_pg_by_state[s.state]++; - if (s.state & PG_STATE_CREATING) { + if ((s.state & PG_STATE_CREATING) && + s.parent_split_bits == 0) { creating_pgs.insert(pgid); if (s.acting_primary >= 0) { creating_pgs_by_osd_epoch[s.acting_primary][s.mapping_epoch].insert(pgid); @@ -505,7 +506,8 @@ void PGMap::stat_pg_sub(const pg_t &pgid, const pg_stat_t &s, if (end == 0) num_pg_by_state.erase(s.state); - if (s.state & PG_STATE_CREATING) { + if ((s.state & PG_STATE_CREATING) && + s.parent_split_bits == 0) { creating_pgs.erase(pgid); if (s.acting_primary >= 0) { map >& r = creating_pgs_by_osd_epoch[s.acting_primary]; -- 2.47.3