]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: make sure min_alloc_size is power of 2 aligned
authorxie xingguo <xie.xingguo@zte.com.cn>
Mon, 26 Jun 2017 01:29:32 +0000 (09:29 +0800)
committerxie xingguo <xie.xingguo@zte.com.cn>
Tue, 27 Jun 2017 10:47:34 +0000 (18:47 +0800)
BlueStore requires that min_alloc_size must be power of 2 aligned.

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
src/os/bluestore/BlueStore.cc

index 2e3da75fc1440f418de1f082d6cf0b9142f69221..90886fe007691b088d46ce2dd1383a57008accbf 100644 (file)
@@ -5077,6 +5077,17 @@ int BlueStore::mkfs()
        min_alloc_size = cct->_conf->bluestore_min_alloc_size_ssd;
       }
     }
+
+    // make sure min_alloc_size is power of 2 aligned.
+    if (!ISP2(min_alloc_size)) {
+      derr << __func__ << " min_alloc_size 0x"
+           << std::hex << min_alloc_size << std::dec
+           << " is not power of 2 aligned!"
+           << dendl;
+      r = -EINVAL;
+      goto out_close_fm;
+    }
+
     {
       bufferlist bl;
       ::encode((uint64_t)min_alloc_size, bl);