]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
OSD: add pgid and res_map to DeletingState
authorSamuel Just <sam.just@inktank.com>
Thu, 30 May 2013 22:11:34 +0000 (15:11 -0700)
committerSamuel Just <sam.just@inktank.com>
Tue, 4 Jun 2013 19:36:00 +0000 (12:36 -0700)
Signed-off-by: Samuel Just <sam.just@inktank.com>
src/osd/OSD.cc
src/osd/OSD.h

index dc0781d95d3b4c7c9110826e1bbbd2f47bc0d1c1..8a4da41da8a3aa87a6680408c96afa9e9c5ba68f 100644 (file)
@@ -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(
index a5d6e0ee148dc206269309526d5d503975b8c3b8..a91b657934b770e0b7ad633a5a231d3a62748ef2 100644 (file)
@@ -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<pg_t, PGRef> &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() {