From: xie xingguo Date: Wed, 28 Dec 2016 06:23:35 +0000 (+0800) Subject: os/bluestore: replace m_max_alloc_size with m_max_blocks X-Git-Tag: v12.0.0~152^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6a187e473ccc625a6c2a0a21578606770704ee2f;p=ceph.git os/bluestore: replace m_max_alloc_size with m_max_blocks So we can get rid of the annoying transfer each time we try to add an extent into an ExtentList. Also simplify the add_extents() method a little. Signed-off-by: xie xingguo --- diff --git a/src/os/bluestore/bluestore_types.cc b/src/os/bluestore/bluestore_types.cc index 36bcedbfd7fb..e98ba7682e5e 100644 --- a/src/os/bluestore/bluestore_types.cc +++ b/src/os/bluestore/bluestore_types.cc @@ -23,12 +23,10 @@ void ExtentList::add_extents(int64_t start, int64_t count) { if (m_num_extents > 0) { last_extent = &((*m_extents)[m_num_extents - 1]); - uint64_t last_offset = (last_extent->offset + last_extent->length) / - m_block_size; - uint32_t last_length = last_extent->length / m_block_size; - int64_t max_blocks = m_max_alloc_size / m_block_size; + uint64_t last_offset = last_extent->end() / m_block_size; + uint32_t last_length = last_extent->length / m_block_size; if ((last_offset == (uint64_t) start) && - (!max_blocks || (last_length + count) <= max_blocks)) { + (!m_max_blocks || (last_length + count) <= m_max_blocks)) { can_merge = true; } } diff --git a/src/os/bluestore/bluestore_types.h b/src/os/bluestore/bluestore_types.h index 20cda85d0528..92596baa7f48 100644 --- a/src/os/bluestore/bluestore_types.h +++ b/src/os/bluestore/bluestore_types.h @@ -84,14 +84,14 @@ class ExtentList { AllocExtentVector *m_extents; int64_t m_num_extents; int64_t m_block_size; - uint64_t m_max_alloc_size; + int64_t m_max_blocks; public: void init(AllocExtentVector *extents, int64_t block_size, uint64_t max_alloc_size) { m_extents = extents; m_num_extents = 0; m_block_size = block_size; - m_max_alloc_size = max_alloc_size; + m_max_blocks = max_alloc_size / block_size; } ExtentList(AllocExtentVector *extents, int64_t block_size) {