From 1864a1bfcb2201c2c7ab4caa9cb3bf43c59fbf11 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Fri, 16 May 2008 16:51:22 -0700 Subject: [PATCH] osd: clean up pg change slightly --- src/osd/OSD.cc | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 943781fb18806..c640a57b62a31 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -1535,6 +1535,9 @@ void OSD::advance_map(ObjectStore::Transaction& t) if (oldrole == 0 || pg->get_role() == 0) pg->clear_primary_state(); + dout(10) << *pg << " " << oldacting << " -> " << pg->acting + << ", role " << oldrole << " -> " << role << dendl; + // pg->on_* for (unsigned i=0; iis_down(oldacting[i])) @@ -1556,16 +1559,16 @@ void OSD::advance_map(ObjectStore::Transaction& t) ls.push_back(it->second); pg->replay_queue.clear(); take_waiters(ls); - - // take active waiters - take_waiters(pg->waiting_for_active); - - pg->on_role_change(); } + + pg->on_role_change(); + // take active waiters + take_waiters(pg->waiting_for_active); + // new primary? if (role == 0) { - // i am new primary + // i am new primary pg->state_clear(PG_STATE_STRAY); } else { // i am now replica|stray. we need to send a notify. @@ -1587,10 +1590,6 @@ void OSD::advance_map(ObjectStore::Transaction& t) } } - // my role changed. - dout(10) << *pg << " " << oldacting << " -> " << pg->acting - << ", role " << oldrole << " -> " << role << dendl; - } else { // no role change. // did primary change? @@ -1614,7 +1613,7 @@ void OSD::advance_map(ObjectStore::Transaction& t) } } } - + pg->unlock(); } } -- 2.39.5