]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: fast exit if compression mode is set to COMP_NONE
authorxie xingguo <xie.xingguo@zte.com.cn>
Mon, 26 Jun 2017 11:57:29 +0000 (19:57 +0800)
committerxie xingguo <xie.xingguo@zte.com.cn>
Tue, 27 Jun 2017 11:03:07 +0000 (19:03 +0800)
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
src/os/bluestore/BlueStore.cc

index 90886fe007691b088d46ce2dd1383a57008accbf..f10ae76af4ae1472bb7fed8a96b7457b9bb83d19 100644 (file)
@@ -3556,6 +3556,25 @@ void BlueStore::handle_conf_change(const struct md_config_t *conf,
 
 void BlueStore::_set_compression()
 {
+  auto m = Compressor::get_comp_mode_type(cct->_conf->bluestore_compression_mode);
+  if (m) {
+    comp_mode = *m;
+  } else {
+    derr << __func__ << " unrecognized value '"
+         << cct->_conf->bluestore_compression_mode
+         << "' for bluestore_compression_mode, reverting to 'none'"
+         << dendl;
+    comp_mode = Compressor::COMP_NONE;
+  }
+
+  compressor = nullptr;
+
+  if (comp_mode == Compressor::COMP_NONE) {
+    dout(10) << __func__ << " compression mode set to 'none', "
+             << "ignore other compression setttings" << dendl;
+    return;
+  }
+
   if (cct->_conf->bluestore_compression_max_blob_size) {
     comp_min_blob_size = cct->_conf->bluestore_compression_max_blob_size;
   } else {
@@ -3578,19 +3597,6 @@ void BlueStore::_set_compression()
     }
   }
 
-  auto m = Compressor::get_comp_mode_type(cct->_conf->bluestore_compression_mode);
-  if (m) {
-    comp_mode = *m;
-  } else {
-    derr << __func__ << " unrecognized value '"
-         << cct->_conf->bluestore_compression_mode
-         << "' for bluestore_compression_mode, reverting to 'none'"
-         << dendl;
-    comp_mode = Compressor::COMP_NONE;
-  }
-
-  compressor = nullptr;
-
   auto& alg_name = cct->_conf->bluestore_compression_algorithm;
   if (!alg_name.empty()) {
     compressor = Compressor::create(cct, alg_name);