]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: pay attention to shard when setting role
authorSage Weil <sage@redhat.com>
Fri, 29 Apr 2016 19:44:04 +0000 (15:44 -0400)
committerBoris Ranto <branto@redhat.com>
Fri, 6 May 2016 11:44:18 +0000 (13:44 +0200)
This matches start_peering_interval().

Signed-off-by: Sage Weil <sage@redhat.com>
src/osd/OSD.cc

index 7b864a52f776fe68c35107bb530a6cbecf4bb135..8b905bf199d494c8f076c11c95d983bd2cd62a33 100644 (file)
@@ -3222,7 +3222,10 @@ void OSD::load_pgs()
       up_primary,
       primary);
     int role = OSDMap::calc_pg_role(whoami, pg->acting);
-    pg->set_role(role);
+    if (pg->pool.info.is_replicated() || role == pg->pg_whoami.shard)
+      pg->set_role(role);
+    else
+      pg->set_role(-1);
 
     pg->reg_next_scrub();