]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/PG: fix choose_acting revert to up case 1552/head
authorSage Weil <sage@inktank.com>
Fri, 28 Mar 2014 20:10:06 +0000 (13:10 -0700)
committerSage Weil <sage@inktank.com>
Fri, 28 Mar 2014 20:10:06 +0000 (13:10 -0700)
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 <sage@inktank.com>
src/osd/PG.cc

index 1b18d83ec593240f843ccc0a13fa64dfeb8b79bc..fab6981688f74c6043ef795b3c800430735ed7fa 100644 (file)
@@ -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<int> 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() &&