Signed-off-by: Samuel Just <sam.just@inktank.com>
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(
} 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() {