data.merge_tail(ctx.tm.get_block_size());
auto extents = co_await ctx.tm.alloc_data_extents<ObjectDataBlock>(
ctx.t,
- (overwrite_range.aligned_end - ctx.tm.get_block_size()
- ).checked_to_laddr(),
+ laddr_hint_t::create_as_fixed(
+ (overwrite_range.aligned_end - ctx.tm.get_block_size()
+ ).checked_to_laddr()),
ctx.tm.get_block_size(),
std::move(write_pos)
).handle_error_interruptible(
});
}
+ObjectDataHandler::touch_ret
+ObjectDataHandler::touch(context_t ctx)
+{
+ return with_object_data(ctx, [this, ctx](auto &obj_data) {
+ return prepare_data_reservation(
+ ctx, obj_data, max_object_size
+ ).discard_result();
+ });
+}
+
ObjectDataHandler::write_ret ObjectDataHandler::write(
context_t ctx,
objaddr_t offset,
Onode *d_onode = nullptr; // The desination node in case of clone
};
+ using touch_iertr = base_iertr;
+ using touch_ret = touch_iertr::future<>;
+ touch_ret touch(context_t ctx);
+
/// Writes bl to [offset, offset + bl.length())
using write_iertr = base_iertr;
using write_ret = write_iertr::future<>;