From: xie xingguo Date: Fri, 8 Jul 2016 07:21:57 +0000 (+0800) Subject: os/bluestore: release compressor if comp_mode turned out to be none X-Git-Tag: ses5-milestone5~458^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ff0329634a29f51174e372d1289745b3bf2883b6;p=ceph.git os/bluestore: release compressor if comp_mode turned out to be none Signed-off-by: xie xingguo --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 978a020fea74..c2fa342e3bea 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -1429,42 +1429,48 @@ void BlueStore::_set_compression() comp_min_blob_size = g_conf->bluestore_compression_min_blob_size; comp_max_blob_size = g_conf->bluestore_compression_max_blob_size; - const char *alg = 0; - if (g_conf->bluestore_compression_algorithm == "snappy") { - alg = "snappy"; - } else if (g_conf->bluestore_compression_algorithm == "zlib") { - alg = "zlib"; - } else if (g_conf->bluestore_compression_algorithm.length()) { - derr << __func__ << " unrecognized compression algorithm '" - << g_conf->bluestore_compression_algorithm << "'" << dendl; - } - if (alg) { - compressor = Compressor::create(cct, alg); - if (!compressor) { - derr << __func__ << " unable to initialize " << alg << " compressor" - << dendl; - } + if (g_conf->bluestore_compression == "force") { + comp_mode = COMP_FORCE; + } else if (g_conf->bluestore_compression == "aggressive") { + comp_mode = COMP_AGGRESSIVE; + } else if (g_conf->bluestore_compression == "passive") { + comp_mode = COMP_PASSIVE; + } else if (g_conf->bluestore_compression == "none") { + comp_mode = COMP_NONE; } else { - compressor = nullptr; - } - CompressionMode m = COMP_NONE; - if (compressor) { - if (g_conf->bluestore_compression == "force") { - m = COMP_FORCE; - } else if (g_conf->bluestore_compression == "aggressive") { - m = COMP_AGGRESSIVE; - } else if (g_conf->bluestore_compression == "passive") { - m = COMP_PASSIVE; - } else if (g_conf->bluestore_compression == "none") { - m = COMP_NONE; - } else { - derr << __func__ << " unrecognized value '" - << g_conf->bluestore_compression - << "' for bluestore_compression, reverting to 'none'" << dendl; - m = COMP_NONE; + derr << __func__ << " unrecognized value '" + << g_conf->bluestore_compression + << "' for bluestore_compression, reverting to 'none'" + << dendl; + comp_mode = COMP_NONE; + } + + compressor = nullptr; + if (comp_mode != COMP_NONE) { + const char *alg = 0; + if (g_conf->bluestore_compression_algorithm == "snappy") { + alg = "snappy"; + } else if (g_conf->bluestore_compression_algorithm == "zlib") { + alg = "zlib"; + } else if (g_conf->bluestore_compression_algorithm.length()) { + derr << __func__ << " unrecognized compression algorithm '" + << g_conf->bluestore_compression_algorithm << "'" + << ", reverting compression mode to 'none'" + << dendl; + comp_mode = COMP_NONE; + } + + if (alg) { + compressor = Compressor::create(cct, alg); + if (!compressor) { + derr << __func__ << " unable to initialize " << alg << " compressor" + << ", reverting compression mode to 'none'" + << dendl; + comp_mode = COMP_NONE; + } } } - comp_mode = m; + dout(10) << __func__ << " mode " << get_comp_mode_name(comp_mode) << " alg " << (compressor ? compressor->get_type() : "(none)") << dendl;