From 20fd714a08f712c7d87068f9d4938e0f597c5f22 Mon Sep 17 00:00:00 2001 From: Samuel Just Date: Tue, 5 Aug 2014 12:57:43 -0700 Subject: [PATCH] OSD: wake_pg_waiters outside of the pgmap write_lock, pg_lock Signed-off-by: Samuel Just --- src/osd/OSD.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 08b6bcc295884..e586674f0dbd3 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -2647,7 +2647,6 @@ void OSD::add_newly_split_pg(PG *pg, PG::RecoveryCtx *rctx) pg->get("PGMap"); // For pg_map pg_map[pg->info.pgid] = pg; service.pg_add_epoch(pg->info.pgid, pg->get_osdmap()->get_epoch()); - wake_pg_waiters(pg, pg->info.pgid); dout(10) << "Adding newly split pg " << *pg << dendl; vector up, acting; @@ -8301,6 +8300,7 @@ struct C_CompleteSplits : public Context { osd->dispatch_context_transaction(rctx, &**i); to_complete.insert((*i)->info.pgid); (*i)->unlock(); + osd->wake_pg_waiters(&**i, (*i)->info.pgid); to_complete.clear(); } -- 2.39.5