]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
seastore/rbm: fix wrong loop condition
authormyoungwon oh <ohmyoungwon@gmail.com>
Thu, 10 Jun 2021 08:47:56 +0000 (17:47 +0900)
committermyoungwon oh <ohmyoungwon@gmail.com>
Tue, 15 Jun 2021 02:09:06 +0000 (11:09 +0900)
Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
src/crimson/os/seastore/randomblock_manager.cc

index b2aec77bd3e6fc11e9e1ea24cceb53ce2bb8d748..b500f564f39a2135c54f6ce99e60e168990adab5 100644 (file)
@@ -186,11 +186,16 @@ RandomBlockManager::find_block_ret RandomBlockManager::find_free_block(Transacti
              auto allocated_blocks = t.get_rbm_allocated_blocks();
              for (uint64_t i = 0; i < max && (uint64_t)size/super.block_size > allocated; i++) {
                auto block_id = convert_bitmap_block_no_to_block_id(i, addr);
+               bool out = false;
                for (auto b : allocated_blocks) {
                  if (b.alloc_blk_ids.intersects(block_id, 1)) {
-                   continue;
+                   out = true;
+                   break;
                  }
                }
+               if (out) {
+                 continue;
+               }
                if (b_block.is_allocated(i)) {
                  continue;
                }