From: Xuehan Xu Date: Fri, 27 Feb 2026 07:18:19 +0000 (+0800) Subject: crimson/os/seastore/object_data_handler: avoid reserving zero-length X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=5f1325f2efae7e0e29a8655b4f1e6f36c823d5de;p=ceph.git crimson/os/seastore/object_data_handler: avoid reserving zero-length regions Signed-off-by: Xuehan Xu --- diff --git a/src/crimson/os/seastore/object_data_handler.cc b/src/crimson/os/seastore/object_data_handler.cc index 5c75d87a9b9..5a5774f0a44 100644 --- a/src/crimson/os/seastore/object_data_handler.cc +++ b/src/crimson/os/seastore/object_data_handler.cc @@ -289,14 +289,16 @@ ObjectDataHandler::write_ret do_zero( (data.tailbl ? ctx.tm.get_block_size() : 0) ).checked_to_laddr(); auto len = end.get_byte_distance(laddr); - zero_pos = co_await ctx.tm.reserve_region(ctx.t, std::move(zero_pos), laddr, len - ).handle_error_interruptible( - crimson::ct_error::enospc::assert_failure{"unexpected enospc"}, - TransactionManager::get_pin_iertr::pass_further{} - ).handle_error_interruptible( - ObjectDataHandler::write_iertr::pass_further{}, - crimson::ct_error::assert_all{"unexpected error"} - ); + if (len != 0) { + zero_pos = co_await ctx.tm.reserve_region(ctx.t, std::move(zero_pos), laddr, len + ).handle_error_interruptible( + crimson::ct_error::enospc::assert_failure{"unexpected enospc"}, + TransactionManager::get_pin_iertr::pass_further{} + ).handle_error_interruptible( + ObjectDataHandler::write_iertr::pass_further{}, + crimson::ct_error::assert_all{"unexpected error"} + ); + } if (data.headbl) { assert(data.headbl->length() < ctx.tm.get_block_size());