]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
improved forcefeeding of crush
authorsageweil <sageweil@29311d96-e01e-0410-9327-a35deaab8ce9>
Thu, 7 Dec 2006 19:08:54 +0000 (19:08 +0000)
committersageweil <sageweil@29311d96-e01e-0410-9327-a35deaab8ce9>
Thu, 7 Dec 2006 19:08:54 +0000 (19:08 +0000)
git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@983 29311d96-e01e-0410-9327-a35deaab8ce9

ceph/osd/OSDMap.h

index 8a449ba631c8625f3a904f78def4f13e18041cb9..2c00eea9cdbdca99b164c9d6566aa1fa1fdfcbbb 100644 (file)
@@ -356,18 +356,14 @@ private:
     case PG_LAYOUT_CRUSH:
       {
        int forcefeed = -1;
-       if (pg.u.fields.preferred > 0) {
+       if (pg.u.fields.preferred > 0 &&
+           out_osds.count(pg.u.fields.preferred-1) == 0) 
          forcefeed = pg.u.fields.preferred-1;
-         if (out_osds.count(forcefeed)) 
-           forcefeed = -1;  // or not!
-       }
        crush.do_rule(crush.rules[num_rep],     // FIXME rule thing.
                      ps, 
                      osds,
                      out_osds, overload_osds,
                      forcefeed);
-       //if (forcefeed >= 0)
-       //cout << "forcefeed " << forcefeed << " result " << osds << endl;
       }
       break;