From 60e44076170b777464358a55e4cb41ed24d475ba Mon Sep 17 00:00:00 2001 From: myoungwon oh Date: Mon, 13 Feb 2023 11:44:02 +0900 Subject: [PATCH] crimson/os/seastore/rbm: reset stream_index_to_open in NVMeBlockDevice at close() Signed-off-by: Myoungwon Oh --- .../os/seastore/random_block_manager/nvme_block_device.cc | 2 ++ 1 file changed, 2 insertions(+) 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 6d5f5294d9a..4dc65963056 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 @@ -186,6 +186,7 @@ open_ertr::future<> NVMeBlockDevice::open_for_io( return seastar::do_for_each(io_device, [=, this](auto &target_device) { return seastar::open_file_dma(in_path, mode).then([this]( auto file) { + assert(io_device.size() > stream_index_to_open); io_device[stream_index_to_open] = file; return io_device[stream_index_to_open].fcntl( F_SET_FILE_RW_HINT, @@ -318,6 +319,7 @@ write_ertr::future<> NVMeBlockDevice::writev( Device::close_ertr::future<> NVMeBlockDevice::close() { logger().debug(" close "); + stream_index_to_open = WRITE_LIFE_NOT_SET; return device.close().then([this]() { return seastar::do_for_each(io_device, [](auto target_device) { return target_device.close(); -- 2.39.5