From: Sage Weil Date: Fri, 8 Sep 2017 22:08:07 +0000 (-0400) Subject: os/bluestore: align bluefs_extents to min_alloc_size X-Git-Tag: v12.2.2~153^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=3decf1c0de9f54b09afc954b13c2c8fac1011de9;p=ceph.git os/bluestore: align bluefs_extents to min_alloc_size Signed-off-by: Sage Weil (cherry picked from commit 0c777efdcb2ee5a6322f0eb277e681d0f086e0b6) --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 9c2a2fedcd24..5e77da5ed96a 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -4164,13 +4164,14 @@ int BlueStore::_open_fm(bool create) // allocate superblock reserved space. note that we do not mark // bluefs space as allocated in the freelist; we instead rely on // bluefs_extents. - fm->allocate(0, SUPER_RESERVED, t); + uint64_t reserved = ROUND_UP_TO(MAX(SUPER_RESERVED, min_alloc_size), + min_alloc_size); + fm->allocate(0, reserved, t); - uint64_t reserved = 0; if (cct->_conf->bluestore_bluefs) { assert(bluefs_extents.num_intervals() == 1); interval_set::iterator p = bluefs_extents.begin(); - reserved = p.get_start() + p.get_len(); + reserved = ROUND_UP_TO(p.get_start() + p.get_len(), min_alloc_size); dout(20) << __func__ << " reserved 0x" << std::hex << reserved << std::dec << " for bluefs" << dendl; bufferlist bl; @@ -4178,8 +4179,6 @@ int BlueStore::_open_fm(bool create) t->set(PREFIX_SUPER, "bluefs_extents", bl); dout(20) << __func__ << " bluefs_extents 0x" << std::hex << bluefs_extents << std::dec << dendl; - } else { - reserved = SUPER_RESERVED; } if (cct->_conf->bluestore_debug_prefill > 0) {