From: Sage Weil Date: Tue, 23 Jul 2019 22:44:40 +0000 (-0500) Subject: os/bluestore: set per_pool_omap key on mkfs X-Git-Tag: v15.1.0~1915^2~15 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=19f497c9b00cd16533ec63ed9c5e52492622b492;p=ceph.git os/bluestore: set per_pool_omap key on mkfs This key indicates that *all* objects put omap in the per-pool prefix and key format. Signed-off-by: Sage Weil --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 572d83c7724b..b8589452e6c6 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -6180,7 +6180,11 @@ int BlueStore::mkfs() encode((uint64_t)min_alloc_size, bl); t->set(PREFIX_SUPER, "min_alloc_size", bl); } - + { + bufferlist bl; + bl.append("1"); + t->set(PREFIX_SUPER, "per_pool_omap", bl); + } ondisk_format = latest_ondisk_format; _prepare_ondisk_format_super(t); db->submit_transaction_sync(t); @@ -9840,6 +9844,18 @@ int BlueStore::_open_super_meta() dout(10) << __func__ << " min_alloc_size 0x" << std::hex << min_alloc_size << std::dec << dendl; } + + { + bufferlist bl; + db->get(PREFIX_SUPER, "per_pool_omap", &bl); + if (bl.length()) { + per_pool_omap = true; + dout(10) << __func__ << " per_pool_omap=1" << dendl; + } else { + dout(10) << __func__ << " per_pool_omap not present" << dendl; + } + } + _open_statfs(); _set_alloc_sizes(); _set_throttle_params(); diff --git a/src/os/bluestore/BlueStore.h b/src/os/bluestore/BlueStore.h index d493fead0766..395252252a1d 100644 --- a/src/os/bluestore/BlueStore.h +++ b/src/os/bluestore/BlueStore.h @@ -1846,6 +1846,8 @@ private: std::numeric_limits::digits, "not enough bits for min_alloc_size"); + bool per_pool_omap = false; + ///< maximum allocation unit (power of 2) std::atomic max_alloc_size = {0};