From: Sage Weil Date: Fri, 28 Mar 2014 20:10:06 +0000 (-0700) Subject: osd/PG: fix choose_acting revert to up case X-Git-Tag: v0.79~64^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F1552%2Fhead;p=ceph.git osd/PG: fix choose_acting revert to up case If we decide to revert back to up, we need to 1- return false, so that we go into the NeedActingChange state, and 2- actually ask for that change. It's too fugly to try to jump down to the existing queue_want_pg_temp call 100+ lines down in this function, so just do it here. We already know that we are requesting to clear the pg_temp. Fixes: #7902 Backport: emperor, dumpling Signed-off-by: Sage Weil --- diff --git a/src/osd/PG.cc b/src/osd/PG.cc index 1b18d83ec593..fab6981688f7 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -1163,12 +1163,13 @@ bool PG::choose_acting(pg_shard_t &auth_log_shard_id) dout(10) << "choose_acting no suitable info found (incomplete backfills?)," << " reverting to up" << dendl; want_acting = up; - return true; + vector empty; + osd->queue_want_pg_temp(info.pgid.pgid, empty); } else { dout(10) << "choose_acting failed" << dendl; assert(want_acting.empty()); - return false; } + return false; } if ((up.size() &&