From 1bd4acc318c03071d9f46f6b4d3cecb6b4ff9c4f Mon Sep 17 00:00:00 2001 From: myoungwon oh Date: Mon, 20 Feb 2023 11:49:54 +0900 Subject: [PATCH] crimson/os/seastore/rbm: do not set block_size in open() Signed-off-by: Myoungwon Oh --- .../os/seastore/random_block_manager/nvme_block_device.cc | 1 - src/crimson/os/seastore/random_block_manager/rbm_device.h | 4 ++++ src/test/crimson/seastore/nvmedevice/test_nvmedevice.cc | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/crimson/os/seastore/random_block_manager/nvme_block_device.cc b/src/crimson/os/seastore/random_block_manager/nvme_block_device.cc index d74cd20041263..adfc5e4c6f4a3 100644 --- a/src/crimson/os/seastore/random_block_manager/nvme_block_device.cc +++ b/src/crimson/os/seastore/random_block_manager/nvme_block_device.cc @@ -134,7 +134,6 @@ open_ertr::future<> NVMeBlockDevice::open( seastar::open_flags mode) { return seastar::do_with(in_path, [this, mode](auto& in_path) { return seastar::file_stat(in_path).then([this, mode, in_path](auto stat) { - super.block_size = stat.block_size; return seastar::open_file_dma(in_path, mode).then([=, this](auto file) { device = file; logger().debug("open"); diff --git a/src/crimson/os/seastore/random_block_manager/rbm_device.h b/src/crimson/os/seastore/random_block_manager/rbm_device.h index acd8baee446a4..91b877e23ae38 100644 --- a/src/crimson/os/seastore/random_block_manager/rbm_device.h +++ b/src/crimson/os/seastore/random_block_manager/rbm_device.h @@ -175,6 +175,10 @@ public: void set_journal_size(uint64_t size) { super.journal_size = size; } + + void set_block_size(size_t size) { + super.block_size = size; + } }; using RBMDeviceRef = std::unique_ptr; diff --git a/src/test/crimson/seastore/nvmedevice/test_nvmedevice.cc b/src/test/crimson/seastore/nvmedevice/test_nvmedevice.cc index faa7cfa140b3b..74ea2aab8cfd1 100644 --- a/src/test/crimson/seastore/nvmedevice/test_nvmedevice.cc +++ b/src/test/crimson/seastore/nvmedevice/test_nvmedevice.cc @@ -57,6 +57,7 @@ TEST_F(nvdev_test_t, write_and_verify_test) run_async([this] { device.reset(new random_block_device::nvme::NVMeBlockDevice("")); device->open(dev_path, seastar::open_flags::rw).unsafe_get(); + device->set_block_size(BLK_SIZE); nvdev_test_block_t original_data; std::minstd_rand0 generator; uint8_t value = generator(); -- 2.39.5