Merge PR #20190 into master

* refs/pull/20190/head:
	mon: allow removal of tier of ec overwritable pool

Reviewed-by: John Spray <john.spray@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: João Eduardo Luís <joao@suse.de>
This commit is contained in:
Patrick Donnelly 2018-02-08 13:05:12 -08:00
commit e8e72570fe
No known key found for this signature in database
GPG Key ID: 3A2A7E25BEA8AADB

View File

@ -11369,10 +11369,13 @@ bool OSDMonitor::_check_remove_tier(
// Apply CephFS-specific checks
const FSMap &pending_fsmap = mon->mdsmon()->get_pending();
if (pending_fsmap.pool_in_use(base_pool_id)) {
if (base_pool->type != pg_pool_t::TYPE_REPLICATED) {
// If the underlying pool is erasure coded, we can't permit the
// removal of the replicated tier that CephFS relies on to access it
*ss << "pool '" << base_pool_name << "' is in use by CephFS via its tier";
if (base_pool->is_erasure() && !base_pool->allows_ecoverwrites()) {
// If the underlying pool is erasure coded and does not allow EC
// overwrites, we can't permit the removal of the replicated tier that
// CephFS relies on to access it
*ss << "pool '" << base_pool_name <<
"' does not allow EC overwrites and is in use by CephFS"
" via its tier";
*err = -EBUSY;
return false;
}