]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/OSDMonitor: fix 'osd tier add ...' pool mangling
authorSage Weil <sage@inktank.com>
Fri, 10 Jan 2014 04:59:36 +0000 (20:59 -0800)
committerSage Weil <sage@inktank.com>
Tue, 14 Jan 2014 00:19:49 +0000 (16:19 -0800)
Signed-off-by: Sage Weil <sage@inktank.com>
src/mon/OSDMonitor.cc
src/osd/OSDMap.cc

index 9bab3f87ceb15bc41600d2edb3c07d895c2ef95a..e93cd69cec559a4375c8c75943ea51f4df063fbd 100644 (file)
@@ -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));
index 0c90789cc80ec4f951846678de061d8f5ac9c256..ed341aa0cffb88345e26249633adf366e44bed74 100644 (file)
@@ -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;