From: Samuel Just Date: Fri, 15 May 2015 20:05:40 +0000 (-0700) Subject: OSDMonitor: disallow ec pools as tiers X-Git-Tag: v0.80.11~56^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=46e5deabebeeb047783cfc980aa28a3df46eeeca;p=ceph.git OSDMonitor: disallow ec pools as tiers Fixes: 11650 Signed-off-by: Samuel Just (cherry picked from commit 11b7801bb57cb25cd2d26d58722d49691747725b) Conflicts: qa/workunits/cephtool/test.sh no "# make sure we can't clobber snapshot state" tests in firefly src/mon/OSDMonitor.cc no tp->removed_snaps.empty() in firefly --- diff --git a/qa/workunits/cephtool/test.sh b/qa/workunits/cephtool/test.sh index efe7c12d1ad..5fd6a188c8b 100755 --- a/qa/workunits/cephtool/test.sh +++ b/qa/workunits/cephtool/test.sh @@ -187,6 +187,13 @@ function test_tiering() ceph osd pool delete cache cache --yes-i-really-really-mean-it ceph osd pool delete cache2 cache2 --yes-i-really-really-mean-it + # make sure we can't create an ec pool tier + ceph osd pool create eccache 2 2 erasure + ceph osd pool create repbase 2 + expect_false ceph osd tier add repbase eccache + ceph osd pool delete repbase repbase --yes-i-really-really-mean-it + ceph osd pool delete eccache eccache --yes-i-really-really-mean-it + # convenient add-cache command ceph osd pool create cache3 2 ceph osd tier add-cache data cache3 1024000 diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index 9fac2c9aec5..b65cbc5131a 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -5313,6 +5313,12 @@ done: err = -ENOTEMPTY; goto reply; } + if (tp->ec_pool()) { + ss << "tier pool '" << tierpoolstr + << "' is an ec pool, which cannot be a tier"; + err = -ENOTSUP; + goto reply; + } // go pg_pool_t *np = pending_inc.get_new_pool(pool_id, p); pg_pool_t *ntp = pending_inc.get_new_pool(tierpool_id, tp);