From: myoungwon oh Date: Fri, 11 Jun 2021 13:17:23 +0000 (+0900) Subject: seastore/rbm: replace blk_paddr_t with size_t in free_extent() X-Git-Tag: v17.1.0~1638^2~5 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=4c90949681f300f6afc6b26bc120c2df59db4d10;p=ceph-ci.git seastore/rbm: replace blk_paddr_t with size_t in free_extent() Signed-off-by: Myoungwon Oh --- diff --git a/src/crimson/os/seastore/random_block_manager.h b/src/crimson/os/seastore/random_block_manager.h index 8efca624fc2..a25ec5ba99c 100644 --- a/src/crimson/os/seastore/random_block_manager.h +++ b/src/crimson/os/seastore/random_block_manager.h @@ -79,7 +79,7 @@ public: crimson::ct_error::invarg >; // TODO: will include trim if necessary - virtual free_block_ertr::future<> free_extent(Transaction &t, blk_paddr_t from, blk_paddr_t to) = 0; + virtual free_block_ertr::future<> free_extent(Transaction &t, blk_paddr_t from, size_t len) = 0; using abort_allocation_ertr = crimson::errorator< crimson::ct_error::input_output_error, diff --git a/src/crimson/os/seastore/random_block_manager/nvme_manager.cc b/src/crimson/os/seastore/random_block_manager/nvme_manager.cc index f22b8e4c52d..5207dbee4ae 100644 --- a/src/crimson/os/seastore/random_block_manager/nvme_manager.cc +++ b/src/crimson/os/seastore/random_block_manager/nvme_manager.cc @@ -294,13 +294,13 @@ NVMeManager::allocate_ertr::future<> NVMeManager::alloc_extent( } NVMeManager::free_block_ertr::future<> NVMeManager::free_extent( - Transaction &t, blk_paddr_t from, blk_paddr_t to) + Transaction &t, blk_paddr_t from, size_t len) { + ceph_assert(!(len % super.block_size)); blk_id_t blk_id_start = from / super.block_size; - blk_id_t blk_id_end = to / super.block_size; interval_set free_extent; - free_extent.insert(blk_id_start, blk_id_end - blk_id_start + 1); + free_extent.insert(blk_id_start, len / super.block_size); rbm_alloc_delta_t alloc_info { extent_types_t::RBM_ALLOC_INFO, free_extent, diff --git a/src/crimson/os/seastore/random_block_manager/nvme_manager.h b/src/crimson/os/seastore/random_block_manager/nvme_manager.h index e8745ddca35..7015e351e30 100644 --- a/src/crimson/os/seastore/random_block_manager/nvme_manager.h +++ b/src/crimson/os/seastore/random_block_manager/nvme_manager.h @@ -212,7 +212,7 @@ public: */ // TODO: will include trim if necessary free_block_ertr::future<> free_extent( - Transaction &t, blk_paddr_t from, blk_paddr_t to) final; + Transaction &t, blk_paddr_t from, size_t len) final; abort_allocation_ertr::future<> abort_allocation(Transaction &t) final; write_ertr::future<> complete_allocation(Transaction &t) final; diff --git a/src/test/crimson/seastore/test_randomblock_manager.cc b/src/test/crimson/seastore/test_randomblock_manager.cc index 8ea9a502b50..994a9b8afdf 100644 --- a/src/test/crimson/seastore/test_randomblock_manager.cc +++ b/src/test/crimson/seastore/test_randomblock_manager.cc @@ -93,10 +93,10 @@ struct rbm_test_t : public seastar_test_suite_t, auto free_extent(Transaction &t, interval_set range) { for (auto r : range) { - logger().debug("free_extent: start {} end {}", r.first * DEFAULT_BLOCK_SIZE, - (r.first + r.second - 1) * DEFAULT_BLOCK_SIZE); + logger().debug("free_extent: start {} len {}", r.first * DEFAULT_BLOCK_SIZE, + r.second * DEFAULT_BLOCK_SIZE); return rbm_manager->free_extent(t, r.first * DEFAULT_BLOCK_SIZE, - (r.first + r.second - 1) * DEFAULT_BLOCK_SIZE).unsafe_get0(); + r.second * DEFAULT_BLOCK_SIZE).unsafe_get0(); } }