From: Samuel Just Date: Thu, 30 May 2013 22:11:34 +0000 (-0700) Subject: OSD: add pgid and res_map to DeletingState X-Git-Tag: v0.65~147^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=d605eafd178db105031f473084f9aac28940aaf7;p=ceph.git OSD: add pgid and res_map to DeletingState Signed-off-by: Samuel Just --- diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index dc0781d95d3..8a4da41da8a 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -6063,7 +6063,12 @@ void OSD::_remove_pg(PG *pg) service.cancel_pending_splits_for_parent(pg->info.pgid); - DeletingStateRef deleting = service.deleting_pgs.lookup_or_create(pg->info.pgid); + DeletingStateRef deleting = service.deleting_pgs.lookup_or_create( + pg->info.pgid, + make_pair( + pg->info.pgid, + PGRef(pg)) + ); remove_wq.queue(make_pair(PGRef(pg), deleting)); store->queue_transaction( diff --git a/src/osd/OSD.h b/src/osd/OSD.h index a5d6e0ee148..a91b657934b 100644 --- a/src/osd/OSD.h +++ b/src/osd/OSD.h @@ -152,8 +152,11 @@ class DeletingState { } status; bool stop_deleting; public: - DeletingState() : - lock("DeletingState::lock"), status(QUEUED), stop_deleting(false) {} + const pg_t pgid; + const PGRef old_pg_state; + DeletingState(const pair &in) : + lock("DeletingState::lock"), status(QUEUED), stop_deleting(false), + pgid(in.first), old_pg_state(in.second) {} /// check whether removal was canceled bool check_canceled() {