summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Just <sam.just@inktank.com>2012-11-19 19:58:43 -0800
committerSamuel Just <sam.just@inktank.com>2012-12-06 22:53:06 -0800
commitfb738506f6b6a0596a1ed41d1aa273aaa8cd5813 (patch)
tree63f313c7083f053e7328951199280913ff9078d1
parent3f412e88fa93bfb150f9af8828158a2bb8d67322 (diff)
downloadceph-fb738506f6b6a0596a1ed41d1aa273aaa8cd5813.tar.gz
PG: set child up/acting in split_into
Signed-off-by: Samuel Just <sam.just@inktank.com>
-rw-r--r--src/osd/PG.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/osd/PG.cc b/src/osd/PG.cc
index da843ea037d..03f11878292 100644
--- a/src/osd/PG.cc
+++ b/src/osd/PG.cc
@@ -2033,6 +2033,11 @@ void PG::split_into(pg_t child_pgid, PG *child, unsigned split_bits)
child->snap_trimq = snap_trimq;
+ get_osdmap()->pg_to_up_acting_osds(child->info.pgid, child->up, child->acting);
+ child->role = get_osdmap()->calc_pg_role(osd->whoami, child->acting);
+ if (get_primary() != child->get_primary())
+ child->info.history.same_primary_since = get_osdmap()->get_epoch();
+
// History
child->past_intervals = past_intervals;