From 8b39719a1020e9730639b5bc437c1f882e76911c Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Thu, 9 Jan 2014 20:59:36 -0800 Subject: [PATCH] osd/OSDMonitor: fix 'osd tier add ...' pool mangling Signed-off-by: Sage Weil --- src/mon/OSDMonitor.cc | 2 +- src/osd/OSDMap.cc | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index 9bab3f87ceb15..e93cd69cec559 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 0c90789cc80ec..ed341aa0cffb8 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; -- 2.39.5