From: Sage Weil Date: Fri, 10 Jan 2014 04:59:36 +0000 (-0800) Subject: osd/OSDMonitor: fix 'osd tier add ...' pool mangling X-Git-Tag: v0.75~1^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=d429ab5434f07838d1dd410a0910757fc784f4d6;p=ceph.git osd/OSDMonitor: fix 'osd tier add ...' pool mangling Signed-off-by: Sage Weil --- diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index 9bab3f87ceb1..e93cd69cec55 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -4167,7 +4167,7 @@ done: } // go pending_inc.get_new_pool(pool_id, p)->tiers.insert(tierpool_id); - pending_inc.get_new_pool(tierpool_id, p)->tier_of = pool_id; + pending_inc.get_new_pool(tierpool_id, tp)->tier_of = pool_id; ss << "pool '" << tierpoolstr << "' is now (or already was) a tier of '" << poolstr << "'"; wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, ss.str(), get_last_committed() + 1)); diff --git a/src/osd/OSDMap.cc b/src/osd/OSDMap.cc index 2a983b95526c..a47da7d3a714 100644 --- a/src/osd/OSDMap.cc +++ b/src/osd/OSDMap.cc @@ -193,14 +193,18 @@ int OSDMap::Incremental::propagate_snaps_to_tiers(CephContext *cct, pg_pool_t *tier = 0; if (r == new_pools.end()) { const pg_pool_t *orig = osdmap.get_pg_pool(*q); - if (!orig) + if (!orig) { + lderr(cct) << __func__ << " no pool " << *q << dendl; return -EIO; + } tier = get_new_pool(*q, orig); } else { tier = &r->second; } - if (tier->tier_of != p->first) + if (tier->tier_of != p->first) { + lderr(cct) << __func__ << " " << r->first << " tier_of != " << p->first << dendl; return -EIO; + } ldout(cct, 10) << __func__ << " from " << p->first << " to " << r->first << dendl;