From 9d6425ab25f35bb4d6f3552ed38b21491640cabf Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 20 Feb 2018 15:49:19 -0600 Subject: [PATCH] osd: decrement deleting pg count in _delete_some The exit() method for ToDelete state doesn't run on PG destruction. Signed-off-by: Sage Weil --- src/osd/PG.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/osd/PG.cc b/src/osd/PG.cc index 518ac11701e1e..4c68bb152db3a 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -6547,6 +6547,8 @@ void PG::_delete_some() // cancel reserver here, since the PG is about to get deleted and the // exit() methods don't run when that happens. osd->local_reserver.cancel_reservation(info.pgid); + + osd->logger->dec(l_osd_pg_removing); } } @@ -8448,6 +8450,8 @@ void PG::RecoveryState::ToDelete::exit() { context< RecoveryMachine >().log_exit(state_name, enter_time); PG *pg = context< RecoveryMachine >().pg; + // note: on a successful removal, this path doesn't execute. see + // _delete_some(). pg->osd->logger->dec(l_osd_pg_removing); pg->osd->local_reserver.cancel_reservation(pg->info.pgid); } -- 2.39.5