From: Ilya Dryomov Date: Tue, 13 Jun 2023 11:36:02 +0000 (+0200) Subject: librbd: stop passing IOContext to image dispatch write methods X-Git-Tag: v19.0.0~992^2~1 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=584f865ae116185087176715ced014b625f04e82;p=ceph-ci.git librbd: stop passing IOContext to image dispatch write methods This is a major footgun since any value passed e.g. at the API layer may be stale by the time we get to object dispatch. All callers are passing the IOContext returned by get_data_io_context() for their ImageCtx anyway, highlighting that the parameter is fictitious. Only the read method can meaningfully take IOContext. Signed-off-by: Ilya Dryomov --- diff --git a/src/librbd/api/Io.cc b/src/librbd/api/Io.cc index af9d3ebe5cf..c1bd38fc07e 100644 --- a/src/librbd/api/Io.cc +++ b/src/librbd/api/Io.cc @@ -269,8 +269,7 @@ void Io::aio_write(I &image_ctx, io::AioCompletion *aio_comp, uint64_t off, auto req = io::ImageDispatchSpec::create_write( image_ctx, io::IMAGE_DISPATCH_LAYER_API_START, aio_comp, - {{off, len}}, io::ImageArea::DATA, std::move(bl), - image_ctx.get_data_io_context(), op_flags, trace); + {{off, len}}, io::ImageArea::DATA, std::move(bl), op_flags, trace); req->send(); } @@ -301,8 +300,7 @@ void Io::aio_discard(I &image_ctx, io::AioCompletion *aio_comp, uint64_t off, auto req = io::ImageDispatchSpec::create_discard( image_ctx, io::IMAGE_DISPATCH_LAYER_API_START, aio_comp, - {{off, len}}, io::ImageArea::DATA, discard_granularity_bytes, - image_ctx.get_data_io_context(), trace); + {{off, len}}, io::ImageArea::DATA, discard_granularity_bytes, trace); req->send(); } @@ -334,8 +332,7 @@ void Io::aio_write_same(I &image_ctx, io::AioCompletion *aio_comp, auto req = io::ImageDispatchSpec::create_write_same( image_ctx, io::IMAGE_DISPATCH_LAYER_API_START, aio_comp, - {{off, len}}, io::ImageArea::DATA, std::move(bl), - image_ctx.get_data_io_context(), op_flags, trace); + {{off, len}}, io::ImageArea::DATA, std::move(bl), op_flags, trace); req->send(); } @@ -408,8 +405,7 @@ void Io::aio_write_zeroes(I& image_ctx, io::AioCompletion *aio_comp, aio_comp->aio_type = io::AIO_TYPE_WRITE; auto req = io::ImageDispatchSpec::create_write( image_ctx, io::IMAGE_DISPATCH_LAYER_API_START, aio_comp, - {{off, len}}, io::ImageArea::DATA, std::move(bl), - image_ctx.get_data_io_context(), op_flags, trace); + {{off, len}}, io::ImageArea::DATA, std::move(bl), op_flags, trace); req->send(); return; } else if (prepend_length == 0 && append_length == 0) { @@ -419,8 +415,7 @@ void Io::aio_write_zeroes(I& image_ctx, io::AioCompletion *aio_comp, auto req = io::ImageDispatchSpec::create_write_same( image_ctx, io::IMAGE_DISPATCH_LAYER_API_START, aio_comp, - {{off, len}}, io::ImageArea::DATA, std::move(bl), - image_ctx.get_data_io_context(), op_flags, trace); + {{off, len}}, io::ImageArea::DATA, std::move(bl), op_flags, trace); req->send(); return; } @@ -449,7 +444,7 @@ void Io::aio_write_zeroes(I& image_ctx, io::AioCompletion *aio_comp, auto prepend_req = io::ImageDispatchSpec::create_write( image_ctx, io::IMAGE_DISPATCH_LAYER_API_START, prepend_aio_comp, {{prepend_offset, prepend_length}}, io::ImageArea::DATA, - std::move(bl), image_ctx.get_data_io_context(), op_flags, trace); + std::move(bl), op_flags, trace); prepend_req->send(); } @@ -463,7 +458,7 @@ void Io::aio_write_zeroes(I& image_ctx, io::AioCompletion *aio_comp, auto append_req = io::ImageDispatchSpec::create_write( image_ctx, io::IMAGE_DISPATCH_LAYER_API_START, append_aio_comp, {{append_offset, append_length}}, io::ImageArea::DATA, - std::move(bl), image_ctx.get_data_io_context(), op_flags, trace); + std::move(bl), op_flags, trace); append_req->send(); } @@ -476,7 +471,7 @@ void Io::aio_write_zeroes(I& image_ctx, io::AioCompletion *aio_comp, auto req = io::ImageDispatchSpec::create_write_same( image_ctx, io::IMAGE_DISPATCH_LAYER_API_START, write_same_aio_comp, {{write_same_offset, write_same_length}}, io::ImageArea::DATA, - std::move(bl), image_ctx.get_data_io_context(), op_flags, trace); + std::move(bl), op_flags, trace); req->send(); return; } @@ -486,8 +481,7 @@ void Io::aio_write_zeroes(I& image_ctx, io::AioCompletion *aio_comp, auto req = io::ImageDispatchSpec::create_discard( image_ctx, io::IMAGE_DISPATCH_LAYER_API_START, aio_comp, - {{off, len}}, io::ImageArea::DATA, discard_granularity_bytes, - image_ctx.get_data_io_context(), trace); + {{off, len}}, io::ImageArea::DATA, discard_granularity_bytes, trace); req->send(); } @@ -522,7 +516,7 @@ void Io::aio_compare_and_write(I &image_ctx, io::AioCompletion *aio_comp, auto req = io::ImageDispatchSpec::create_compare_and_write( image_ctx, io::IMAGE_DISPATCH_LAYER_API_START, aio_comp, {{off, len}}, io::ImageArea::DATA, std::move(cmp_bl), std::move(bl), - mismatch_off, image_ctx.get_data_io_context(), op_flags, trace); + mismatch_off, op_flags, trace); req->send(); } diff --git a/src/librbd/cache/ImageWriteback.cc b/src/librbd/cache/ImageWriteback.cc index 1145a8c9dc4..40422534ba3 100644 --- a/src/librbd/cache/ImageWriteback.cc +++ b/src/librbd/cache/ImageWriteback.cc @@ -56,7 +56,7 @@ void ImageWriteback::aio_write(Extents &&image_extents, auto req = io::ImageDispatchSpec::create_write( *image_ctx, io::IMAGE_DISPATCH_LAYER_WRITEBACK_CACHE, aio_comp, std::move(image_extents), io::ImageArea::DATA, std::move(bl), - image_ctx->get_data_io_context(), fadvise_flags, trace); + fadvise_flags, trace); req->send(); } @@ -75,8 +75,7 @@ void ImageWriteback::aio_discard(uint64_t offset, uint64_t length, ZTracer::Trace trace; auto req = io::ImageDispatchSpec::create_discard( *image_ctx, io::IMAGE_DISPATCH_LAYER_WRITEBACK_CACHE, aio_comp, - {{offset, length}}, io::ImageArea::DATA, discard_granularity_bytes, - image_ctx->get_data_io_context(), trace); + {{offset, length}}, io::ImageArea::DATA, discard_granularity_bytes, trace); req->send(); } @@ -114,7 +113,7 @@ void ImageWriteback::aio_writesame(uint64_t offset, uint64_t length, auto req = io::ImageDispatchSpec::create_write_same( *image_ctx, io::IMAGE_DISPATCH_LAYER_WRITEBACK_CACHE, aio_comp, {{offset, length}}, io::ImageArea::DATA, std::move(bl), - image_ctx->get_data_io_context(), fadvise_flags, trace); + fadvise_flags, trace); req->send(); } @@ -136,8 +135,7 @@ void ImageWriteback::aio_compare_and_write(Extents &&image_extents, auto req = io::ImageDispatchSpec::create_compare_and_write( *image_ctx, io::IMAGE_DISPATCH_LAYER_WRITEBACK_CACHE, aio_comp, std::move(image_extents), io::ImageArea::DATA, std::move(cmp_bl), - std::move(bl), mismatch_offset, image_ctx->get_data_io_context(), - fadvise_flags, trace); + std::move(bl), mismatch_offset, fadvise_flags, trace); req->send(); } diff --git a/src/librbd/cache/WriteLogImageDispatch.cc b/src/librbd/cache/WriteLogImageDispatch.cc index 07b1422f379..7e0040fe7da 100644 --- a/src/librbd/cache/WriteLogImageDispatch.cc +++ b/src/librbd/cache/WriteLogImageDispatch.cc @@ -71,7 +71,7 @@ bool WriteLogImageDispatch::read( template bool WriteLogImageDispatch::write( io::AioCompletion* aio_comp, io::Extents &&image_extents, bufferlist &&bl, - IOContext io_context, int op_flags, const ZTracer::Trace &parent_trace, + int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, io::DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) { @@ -97,8 +97,7 @@ bool WriteLogImageDispatch::write( template bool WriteLogImageDispatch::discard( io::AioCompletion* aio_comp, io::Extents &&image_extents, - uint32_t discard_granularity_bytes, IOContext io_context, - const ZTracer::Trace &parent_trace, + uint32_t discard_granularity_bytes, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, io::DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) { @@ -126,10 +125,9 @@ bool WriteLogImageDispatch::discard( template bool WriteLogImageDispatch::write_same( - io::AioCompletion* aio_comp, io::Extents &&image_extents, - bufferlist &&bl, IOContext io_context, - int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, - std::atomic* image_dispatch_flags, + io::AioCompletion* aio_comp, io::Extents &&image_extents, bufferlist &&bl, + int op_flags, const ZTracer::Trace &parent_trace, + uint64_t tid, std::atomic* image_dispatch_flags, io::DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) { if (*image_dispatch_flags & io::IMAGE_DISPATCH_FLAG_CRYPTO_HEADER) { @@ -156,10 +154,10 @@ bool WriteLogImageDispatch::write_same( template bool WriteLogImageDispatch::compare_and_write( - io::AioCompletion* aio_comp, io::Extents &&image_extents, bufferlist &&cmp_bl, - bufferlist &&bl, uint64_t *mismatch_offset, IOContext io_context, - int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, - std::atomic* image_dispatch_flags, + io::AioCompletion* aio_comp, io::Extents &&image_extents, + bufferlist &&cmp_bl, bufferlist &&bl, uint64_t *mismatch_offset, + int op_flags, const ZTracer::Trace &parent_trace, + uint64_t tid, std::atomic* image_dispatch_flags, io::DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) { if (*image_dispatch_flags & io::IMAGE_DISPATCH_FLAG_CRYPTO_HEADER) { diff --git a/src/librbd/cache/WriteLogImageDispatch.h b/src/librbd/cache/WriteLogImageDispatch.h index 9344916237e..f68f37dc750 100644 --- a/src/librbd/cache/WriteLogImageDispatch.h +++ b/src/librbd/cache/WriteLogImageDispatch.h @@ -48,30 +48,27 @@ public: Context* on_dispatched) override; bool write( io::AioCompletion* aio_comp, io::Extents &&image_extents, bufferlist &&bl, - IOContext io_context, int op_flags, const ZTracer::Trace &parent_trace, + int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, io::DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) override; bool discard( io::AioCompletion* aio_comp, io::Extents &&image_extents, - uint32_t discard_granularity_bytes, IOContext io_context, - const ZTracer::Trace &parent_trace, uint64_t tid, - std::atomic* image_dispatch_flags, + uint32_t discard_granularity_bytes, const ZTracer::Trace &parent_trace, + uint64_t tid, std::atomic* image_dispatch_flags, io::DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) override; bool write_same( io::AioCompletion* aio_comp, io::Extents &&image_extents, bufferlist &&bl, - IOContext io_context, int op_flags, const ZTracer::Trace &parent_trace, + int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, io::DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) override; bool compare_and_write( io::AioCompletion* aio_comp, io::Extents &&image_extents, - bufferlist &&cmp_bl, - bufferlist &&bl, uint64_t *mismatch_offset, - IOContext io_context, int op_flags, - const ZTracer::Trace &parent_trace, uint64_t tid, - std::atomic* image_dispatch_flags, + bufferlist &&cmp_bl, bufferlist &&bl, uint64_t *mismatch_offset, + int op_flags, const ZTracer::Trace &parent_trace, + uint64_t tid, std::atomic* image_dispatch_flags, io::DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) override; bool flush( diff --git a/src/librbd/crypto/CryptoImageDispatch.h b/src/librbd/crypto/CryptoImageDispatch.h index 737104006af..3ce658981d0 100644 --- a/src/librbd/crypto/CryptoImageDispatch.h +++ b/src/librbd/crypto/CryptoImageDispatch.h @@ -35,10 +35,9 @@ public: } bool write( - io::AioCompletion* aio_comp, io::Extents &&image_extents, - bufferlist &&bl, IOContext io_context, int op_flags, - const ZTracer::Trace &parent_trace, uint64_t tid, - std::atomic* image_dispatch_flags, + io::AioCompletion* aio_comp, io::Extents &&image_extents, bufferlist &&bl, + int op_flags, const ZTracer::Trace &parent_trace, + uint64_t tid, std::atomic* image_dispatch_flags, io::DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) override { return false; @@ -46,19 +45,17 @@ public: bool discard( io::AioCompletion* aio_comp, io::Extents &&image_extents, - uint32_t discard_granularity_bytes, IOContext io_context, - const ZTracer::Trace &parent_trace, uint64_t tid, - std::atomic* image_dispatch_flags, + uint32_t discard_granularity_bytes, const ZTracer::Trace &parent_trace, + uint64_t tid, std::atomic* image_dispatch_flags, io::DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) override { return false; } bool write_same( - io::AioCompletion* aio_comp, io::Extents &&image_extents, - bufferlist &&bl, IOContext io_context, int op_flags, - const ZTracer::Trace &parent_trace, uint64_t tid, - std::atomic* image_dispatch_flags, + io::AioCompletion* aio_comp, io::Extents &&image_extents, bufferlist &&bl, + int op_flags, const ZTracer::Trace &parent_trace, + uint64_t tid, std::atomic* image_dispatch_flags, io::DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) override { return false; @@ -67,7 +64,7 @@ public: bool compare_and_write( io::AioCompletion* aio_comp, io::Extents &&image_extents, bufferlist &&cmp_bl, bufferlist &&bl, uint64_t *mismatch_offset, - IOContext io_context, int op_flags, const ZTracer::Trace &parent_trace, + int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, io::DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) override { diff --git a/src/librbd/crypto/luks/FlattenRequest.cc b/src/librbd/crypto/luks/FlattenRequest.cc index edc7e3c475a..fdf6b5daeee 100644 --- a/src/librbd/crypto/luks/FlattenRequest.cc +++ b/src/librbd/crypto/luks/FlattenRequest.cc @@ -97,7 +97,7 @@ void FlattenRequest::write_header() { auto req = io::ImageDispatchSpec::create_write( *m_image_ctx, io::IMAGE_DISPATCH_LAYER_API_START, aio_comp, {{0, m_bl.length()}}, io::ImageArea::CRYPTO_HEADER, - std::move(m_bl), m_image_ctx->get_data_io_context(), 0, trace); + std::move(m_bl), 0, trace); req->send(); } diff --git a/src/librbd/crypto/luks/FormatRequest.cc b/src/librbd/crypto/luks/FormatRequest.cc index ec367717c2c..32673b9cf27 100644 --- a/src/librbd/crypto/luks/FormatRequest.cc +++ b/src/librbd/crypto/luks/FormatRequest.cc @@ -167,8 +167,7 @@ void FormatRequest::send() { ZTracer::Trace trace; auto req = io::ImageDispatchSpec::create_write( *m_image_ctx, io::IMAGE_DISPATCH_LAYER_API_START, aio_comp, - {{0, bl.length()}}, io::ImageArea::DATA, std::move(bl), - m_image_ctx->get_data_io_context(), 0, trace); + {{0, bl.length()}}, io::ImageArea::DATA, std::move(bl), 0, trace); req->send(); } diff --git a/src/librbd/exclusive_lock/ImageDispatch.cc b/src/librbd/exclusive_lock/ImageDispatch.cc index 92544148c57..4ec513161f8 100644 --- a/src/librbd/exclusive_lock/ImageDispatch.cc +++ b/src/librbd/exclusive_lock/ImageDispatch.cc @@ -125,7 +125,7 @@ bool ImageDispatch::read( template bool ImageDispatch::write( io::AioCompletion* aio_comp, io::Extents &&image_extents, bufferlist &&bl, - IOContext io_context, int op_flags, const ZTracer::Trace &parent_trace, + int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, io::DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) { @@ -143,9 +143,8 @@ bool ImageDispatch::write( template bool ImageDispatch::discard( io::AioCompletion* aio_comp, io::Extents &&image_extents, - uint32_t discard_granularity_bytes, IOContext io_context, - const ZTracer::Trace &parent_trace, uint64_t tid, - std::atomic* image_dispatch_flags, + uint32_t discard_granularity_bytes, const ZTracer::Trace &parent_trace, + uint64_t tid, std::atomic* image_dispatch_flags, io::DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) { auto cct = m_image_ctx->cct; @@ -162,7 +161,7 @@ bool ImageDispatch::discard( template bool ImageDispatch::write_same( io::AioCompletion* aio_comp, io::Extents &&image_extents, bufferlist &&bl, - IOContext io_context, int op_flags, const ZTracer::Trace &parent_trace, + int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, io::DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) { @@ -181,7 +180,7 @@ template bool ImageDispatch::compare_and_write( io::AioCompletion* aio_comp, io::Extents &&image_extents, bufferlist &&cmp_bl, bufferlist &&bl, uint64_t *mismatch_offset, - IOContext io_context, int op_flags, const ZTracer::Trace &parent_trace, + int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, io::DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) { diff --git a/src/librbd/exclusive_lock/ImageDispatch.h b/src/librbd/exclusive_lock/ImageDispatch.h index 77c101973ef..c0d9d49f54c 100644 --- a/src/librbd/exclusive_lock/ImageDispatch.h +++ b/src/librbd/exclusive_lock/ImageDispatch.h @@ -58,27 +58,26 @@ public: Context* on_dispatched) override; bool write( io::AioCompletion* aio_comp, io::Extents &&image_extents, bufferlist &&bl, - IOContext io_context, int op_flags, const ZTracer::Trace &parent_trace, + int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, io::DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) override; bool discard( io::AioCompletion* aio_comp, io::Extents &&image_extents, - uint32_t discard_granularity_bytes, IOContext io_context, - const ZTracer::Trace &parent_trace, uint64_t tid, - std::atomic* image_dispatch_flags, + uint32_t discard_granularity_bytes, const ZTracer::Trace &parent_trace, + uint64_t tid, std::atomic* image_dispatch_flags, io::DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) override; bool write_same( io::AioCompletion* aio_comp, io::Extents &&image_extents, bufferlist &&bl, - IOContext io_context, int op_flags, const ZTracer::Trace &parent_trace, + int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, io::DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) override; bool compare_and_write( io::AioCompletion* aio_comp, io::Extents &&image_extents, bufferlist &&cmp_bl, bufferlist &&bl, uint64_t *mismatch_offset, - IOContext io_context, int op_flags, const ZTracer::Trace &parent_trace, + int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, io::DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) override; diff --git a/src/librbd/io/ImageDispatch.cc b/src/librbd/io/ImageDispatch.cc index 699e85d5351..12c55cb0c66 100644 --- a/src/librbd/io/ImageDispatch.cc +++ b/src/librbd/io/ImageDispatch.cc @@ -62,7 +62,7 @@ bool ImageDispatch::read( template bool ImageDispatch::write( AioCompletion* aio_comp, Extents &&image_extents, bufferlist &&bl, - IOContext io_context, int op_flags, const ZTracer::Trace &parent_trace, + int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) { @@ -82,9 +82,8 @@ bool ImageDispatch::write( template bool ImageDispatch::discard( AioCompletion* aio_comp, Extents &&image_extents, - uint32_t discard_granularity_bytes, IOContext io_context, - const ZTracer::Trace &parent_trace, uint64_t tid, - std::atomic* image_dispatch_flags, + uint32_t discard_granularity_bytes, const ZTracer::Trace &parent_trace, + uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) { auto cct = m_image_ctx->cct; @@ -103,7 +102,7 @@ bool ImageDispatch::discard( template bool ImageDispatch::write_same( AioCompletion* aio_comp, Extents &&image_extents, bufferlist &&bl, - IOContext io_context, int op_flags, const ZTracer::Trace &parent_trace, + int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) { @@ -123,10 +122,10 @@ bool ImageDispatch::write_same( template bool ImageDispatch::compare_and_write( - AioCompletion* aio_comp, Extents &&image_extents, bufferlist &&cmp_bl, - bufferlist &&bl, uint64_t *mismatch_offset, IOContext io_context, - int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, - std::atomic* image_dispatch_flags, + AioCompletion* aio_comp, Extents &&image_extents, + bufferlist &&cmp_bl, bufferlist &&bl, uint64_t *mismatch_offset, + int op_flags, const ZTracer::Trace &parent_trace, + uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) { auto cct = m_image_ctx->cct; diff --git a/src/librbd/io/ImageDispatch.h b/src/librbd/io/ImageDispatch.h index 3d302e9a62a..4a89c605450 100644 --- a/src/librbd/io/ImageDispatch.h +++ b/src/librbd/io/ImageDispatch.h @@ -42,28 +42,27 @@ public: Context* on_dispatched) override; bool write( AioCompletion* aio_comp, Extents &&image_extents, bufferlist &&bl, - IOContext io_context, int op_flags, const ZTracer::Trace &parent_trace, + int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) override; bool discard( AioCompletion* aio_comp, Extents &&image_extents, - uint32_t discard_granularity_bytes, IOContext io_context, - const ZTracer::Trace &parent_trace, uint64_t tid, - std::atomic* image_dispatch_flags, + uint32_t discard_granularity_bytes, const ZTracer::Trace &parent_trace, + uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) override; bool write_same( AioCompletion* aio_comp, Extents &&image_extents, bufferlist &&bl, - IOContext io_context, int op_flags, const ZTracer::Trace &parent_trace, + int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) override; bool compare_and_write( - AioCompletion* aio_comp, Extents &&image_extents, bufferlist &&cmp_bl, - bufferlist &&bl, uint64_t *mismatch_offset, IOContext io_context, - int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, - std::atomic* image_dispatch_flags, + AioCompletion* aio_comp, Extents &&image_extents, + bufferlist &&cmp_bl, bufferlist &&bl, uint64_t *mismatch_offset, + int op_flags, const ZTracer::Trace &parent_trace, + uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) override; bool flush( diff --git a/src/librbd/io/ImageDispatchInterface.h b/src/librbd/io/ImageDispatchInterface.h index 205c18c474f..e479f7eefcf 100644 --- a/src/librbd/io/ImageDispatchInterface.h +++ b/src/librbd/io/ImageDispatchInterface.h @@ -40,28 +40,27 @@ struct ImageDispatchInterface { Context* on_dispatched) = 0; virtual bool write( AioCompletion* aio_comp, Extents &&image_extents, bufferlist &&bl, - IOContext io_context, int op_flags, const ZTracer::Trace &parent_trace, + int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) = 0; virtual bool discard( AioCompletion* aio_comp, Extents &&image_extents, - uint32_t discard_granularity_bytes, - IOContext io_context, const ZTracer::Trace &parent_trace, uint64_t tid, - std::atomic* image_dispatch_flags, + uint32_t discard_granularity_bytes, const ZTracer::Trace &parent_trace, + uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) = 0; virtual bool write_same( AioCompletion* aio_comp, Extents &&image_extents, bufferlist &&bl, - IOContext io_context, int op_flags, const ZTracer::Trace &parent_trace, + int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) = 0; virtual bool compare_and_write( - AioCompletion* aio_comp, Extents &&image_extents, bufferlist &&cmp_bl, - bufferlist &&bl, uint64_t *mismatch_offset, IOContext io_context, - int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, - std::atomic* image_dispatch_flags, + AioCompletion* aio_comp, Extents &&image_extents, + bufferlist &&cmp_bl, bufferlist &&bl, uint64_t *mismatch_offset, + int op_flags, const ZTracer::Trace &parent_trace, + uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) = 0; virtual bool flush( diff --git a/src/librbd/io/ImageDispatchSpec.h b/src/librbd/io/ImageDispatchSpec.h index 8e2c452735a..9323f9879fe 100644 --- a/src/librbd/io/ImageDispatchSpec.h +++ b/src/librbd/io/ImageDispatchSpec.h @@ -139,39 +139,36 @@ public: static ImageDispatchSpec* create_discard( ImageCtxT &image_ctx, ImageDispatchLayer image_dispatch_layer, AioCompletion *aio_comp, Extents &&image_extents, ImageArea area, - uint32_t discard_granularity_bytes, IOContext io_context, - const ZTracer::Trace &parent_trace) { + uint32_t discard_granularity_bytes, const ZTracer::Trace &parent_trace) { return new ImageDispatchSpec(image_ctx.io_image_dispatcher, image_dispatch_layer, aio_comp, std::move(image_extents), area, Discard{discard_granularity_bytes}, - io_context, 0, parent_trace); + {}, 0, parent_trace); } template static ImageDispatchSpec* create_write( ImageCtxT &image_ctx, ImageDispatchLayer image_dispatch_layer, AioCompletion *aio_comp, Extents &&image_extents, ImageArea area, - bufferlist &&bl, IOContext io_context, int op_flags, - const ZTracer::Trace &parent_trace) { + bufferlist &&bl, int op_flags, const ZTracer::Trace &parent_trace) { return new ImageDispatchSpec(image_ctx.io_image_dispatcher, image_dispatch_layer, aio_comp, std::move(image_extents), area, Write{std::move(bl)}, - io_context, op_flags, parent_trace); + {}, op_flags, parent_trace); } template static ImageDispatchSpec* create_write_same( ImageCtxT &image_ctx, ImageDispatchLayer image_dispatch_layer, AioCompletion *aio_comp, Extents &&image_extents, ImageArea area, - bufferlist &&bl, IOContext io_context, int op_flags, - const ZTracer::Trace &parent_trace) { + bufferlist &&bl, int op_flags, const ZTracer::Trace &parent_trace) { return new ImageDispatchSpec(image_ctx.io_image_dispatcher, image_dispatch_layer, aio_comp, std::move(image_extents), area, WriteSame{std::move(bl)}, - io_context, op_flags, parent_trace); + {}, op_flags, parent_trace); } template @@ -179,14 +176,14 @@ public: ImageCtxT &image_ctx, ImageDispatchLayer image_dispatch_layer, AioCompletion *aio_comp, Extents &&image_extents, ImageArea area, bufferlist &&cmp_bl, bufferlist &&bl, uint64_t *mismatch_offset, - IOContext io_context, int op_flags, const ZTracer::Trace &parent_trace) { + int op_flags, const ZTracer::Trace &parent_trace) { return new ImageDispatchSpec(image_ctx.io_image_dispatcher, image_dispatch_layer, aio_comp, std::move(image_extents), area, CompareAndWrite{std::move(cmp_bl), std::move(bl), mismatch_offset}, - io_context, op_flags, parent_trace); + {}, op_flags, parent_trace); } template diff --git a/src/librbd/io/ImageDispatcher.cc b/src/librbd/io/ImageDispatcher.cc index e7e5dda9596..4aa7929b2eb 100644 --- a/src/librbd/io/ImageDispatcher.cc +++ b/src/librbd/io/ImageDispatcher.cc @@ -53,9 +53,8 @@ struct ImageDispatcher::SendVisitor : public boost::static_visitor { return image_dispatch->discard( image_dispatch_spec->aio_comp, std::move(image_dispatch_spec->image_extents), - discard.discard_granularity_bytes, image_dispatch_spec->io_context, - image_dispatch_spec->parent_trace, image_dispatch_spec->tid, - &image_dispatch_spec->image_dispatch_flags, + discard.discard_granularity_bytes, image_dispatch_spec->parent_trace, + image_dispatch_spec->tid, &image_dispatch_spec->image_dispatch_flags, &image_dispatch_spec->dispatch_result, &image_dispatch_spec->aio_comp->image_dispatcher_ctx, &image_dispatch_spec->dispatcher_ctx); @@ -65,33 +64,31 @@ struct ImageDispatcher::SendVisitor : public boost::static_visitor { return image_dispatch->write( image_dispatch_spec->aio_comp, std::move(image_dispatch_spec->image_extents), std::move(write.bl), - image_dispatch_spec->io_context, image_dispatch_spec->op_flags, - image_dispatch_spec->parent_trace, image_dispatch_spec->tid, - &image_dispatch_spec->image_dispatch_flags, + image_dispatch_spec->op_flags, image_dispatch_spec->parent_trace, + image_dispatch_spec->tid, &image_dispatch_spec->image_dispatch_flags, &image_dispatch_spec->dispatch_result, &image_dispatch_spec->aio_comp->image_dispatcher_ctx, &image_dispatch_spec->dispatcher_ctx); } - bool operator()(ImageDispatchSpec::WriteSame& write_same) const { + bool operator()(ImageDispatchSpec::WriteSame& write_same) const { return image_dispatch->write_same( image_dispatch_spec->aio_comp, std::move(image_dispatch_spec->image_extents), std::move(write_same.bl), - image_dispatch_spec->io_context, image_dispatch_spec->op_flags, - image_dispatch_spec->parent_trace, image_dispatch_spec->tid, - &image_dispatch_spec->image_dispatch_flags, + image_dispatch_spec->op_flags, image_dispatch_spec->parent_trace, + image_dispatch_spec->tid, &image_dispatch_spec->image_dispatch_flags, &image_dispatch_spec->dispatch_result, &image_dispatch_spec->aio_comp->image_dispatcher_ctx, &image_dispatch_spec->dispatcher_ctx); } - bool operator()( + bool operator()( ImageDispatchSpec::CompareAndWrite& compare_and_write) const { return image_dispatch->compare_and_write( image_dispatch_spec->aio_comp, std::move(image_dispatch_spec->image_extents), std::move(compare_and_write.cmp_bl), std::move(compare_and_write.bl), - compare_and_write.mismatch_offset, image_dispatch_spec->io_context, + compare_and_write.mismatch_offset, image_dispatch_spec->op_flags, image_dispatch_spec->parent_trace, image_dispatch_spec->tid, &image_dispatch_spec->image_dispatch_flags, &image_dispatch_spec->dispatch_result, diff --git a/src/librbd/io/QosImageDispatch.cc b/src/librbd/io/QosImageDispatch.cc index 96be195c59a..ea1d5dbb5fc 100644 --- a/src/librbd/io/QosImageDispatch.cc +++ b/src/librbd/io/QosImageDispatch.cc @@ -144,7 +144,7 @@ bool QosImageDispatch::read( template bool QosImageDispatch::write( AioCompletion* aio_comp, Extents &&image_extents, bufferlist &&bl, - IOContext io_context, int op_flags, const ZTracer::Trace &parent_trace, + int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) { @@ -167,9 +167,8 @@ bool QosImageDispatch::write( template bool QosImageDispatch::discard( AioCompletion* aio_comp, Extents &&image_extents, - uint32_t discard_granularity_bytes, IOContext io_context, - const ZTracer::Trace &parent_trace, uint64_t tid, - std::atomic* image_dispatch_flags, + uint32_t discard_granularity_bytes, const ZTracer::Trace &parent_trace, + uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) { auto cct = m_image_ctx->cct; @@ -191,7 +190,7 @@ bool QosImageDispatch::discard( template bool QosImageDispatch::write_same( AioCompletion* aio_comp, Extents &&image_extents, bufferlist &&bl, - IOContext io_context, int op_flags, const ZTracer::Trace &parent_trace, + int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) { @@ -213,10 +212,10 @@ bool QosImageDispatch::write_same( template bool QosImageDispatch::compare_and_write( - AioCompletion* aio_comp, Extents &&image_extents, bufferlist &&cmp_bl, - bufferlist &&bl, uint64_t *mismatch_offset, IOContext io_context, - int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, - std::atomic* image_dispatch_flags, + AioCompletion* aio_comp, Extents &&image_extents, + bufferlist &&cmp_bl, bufferlist &&bl, uint64_t *mismatch_offset, + int op_flags, const ZTracer::Trace &parent_trace, + uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) { auto cct = m_image_ctx->cct; diff --git a/src/librbd/io/QosImageDispatch.h b/src/librbd/io/QosImageDispatch.h index 885e2545cea..f5e08940a4b 100644 --- a/src/librbd/io/QosImageDispatch.h +++ b/src/librbd/io/QosImageDispatch.h @@ -62,28 +62,27 @@ public: Context* on_dispatched) override; bool write( AioCompletion* aio_comp, Extents &&image_extents, bufferlist &&bl, - IOContext io_context, int op_flags, const ZTracer::Trace &parent_trace, + int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) override; bool discard( AioCompletion* aio_comp, Extents &&image_extents, - uint32_t discard_granularity_bytes, IOContext io_context, - const ZTracer::Trace &parent_trace, uint64_t tid, - std::atomic* image_dispatch_flags, + uint32_t discard_granularity_bytes, const ZTracer::Trace &parent_trace, + uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) override; bool write_same( AioCompletion* aio_comp, Extents &&image_extents, bufferlist &&bl, - IOContext io_context, int op_flags, const ZTracer::Trace &parent_trace, + int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) override; bool compare_and_write( - AioCompletion* aio_comp, Extents &&image_extents, bufferlist &&cmp_bl, - bufferlist &&bl, uint64_t *mismatch_offset, IOContext io_context, - int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, - std::atomic* image_dispatch_flags, + AioCompletion* aio_comp, Extents &&image_extents, + bufferlist &&cmp_bl, bufferlist &&bl, uint64_t *mismatch_offset, + int op_flags, const ZTracer::Trace &parent_trace, + uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) override; bool flush( diff --git a/src/librbd/io/QueueImageDispatch.cc b/src/librbd/io/QueueImageDispatch.cc index e80d39e4421..ea5ed63b4be 100644 --- a/src/librbd/io/QueueImageDispatch.cc +++ b/src/librbd/io/QueueImageDispatch.cc @@ -54,7 +54,7 @@ bool QueueImageDispatch::read( template bool QueueImageDispatch::write( AioCompletion* aio_comp, Extents &&image_extents, bufferlist &&bl, - IOContext io_context, int op_flags, const ZTracer::Trace &parent_trace, + int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) { @@ -67,8 +67,7 @@ bool QueueImageDispatch::write( template bool QueueImageDispatch::discard( AioCompletion* aio_comp, Extents &&image_extents, - uint32_t discard_granularity_bytes, IOContext io_context, - const ZTracer::Trace &parent_trace, + uint32_t discard_granularity_bytes, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) { @@ -81,7 +80,7 @@ bool QueueImageDispatch::discard( template bool QueueImageDispatch::write_same( AioCompletion* aio_comp, Extents &&image_extents, bufferlist &&bl, - IOContext io_context, int op_flags, const ZTracer::Trace &parent_trace, + int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) { @@ -93,10 +92,10 @@ bool QueueImageDispatch::write_same( template bool QueueImageDispatch::compare_and_write( - AioCompletion* aio_comp, Extents &&image_extents, bufferlist &&cmp_bl, - bufferlist &&bl, uint64_t *mismatch_offset, IOContext io_context, - int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, - std::atomic* image_dispatch_flags, + AioCompletion* aio_comp, Extents &&image_extents, + bufferlist &&cmp_bl, bufferlist &&bl, uint64_t *mismatch_offset, + int op_flags, const ZTracer::Trace &parent_trace, + uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) { auto cct = m_image_ctx->cct; diff --git a/src/librbd/io/QueueImageDispatch.h b/src/librbd/io/QueueImageDispatch.h index 60ee467502d..9a41927ba37 100644 --- a/src/librbd/io/QueueImageDispatch.h +++ b/src/librbd/io/QueueImageDispatch.h @@ -46,28 +46,27 @@ public: Context* on_dispatched) override; bool write( AioCompletion* aio_comp, Extents &&image_extents, bufferlist &&bl, - IOContext io_context, int op_flags, const ZTracer::Trace &parent_trace, + int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) override; bool discard( AioCompletion* aio_comp, Extents &&image_extents, - uint32_t discard_granularity_bytes, IOContext io_context, - const ZTracer::Trace &parent_trace, uint64_t tid, - std::atomic* image_dispatch_flags, + uint32_t discard_granularity_bytes, const ZTracer::Trace &parent_trace, + uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) override; bool write_same( AioCompletion* aio_comp, Extents &&image_extents, bufferlist &&bl, - IOContext io_context, int op_flags, const ZTracer::Trace &parent_trace, + int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) override; bool compare_and_write( - AioCompletion* aio_comp, Extents &&image_extents, bufferlist &&cmp_bl, - bufferlist &&bl, uint64_t *mismatch_offset, IOContext io_context, - int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, - std::atomic* image_dispatch_flags, + AioCompletion* aio_comp, Extents &&image_extents, + bufferlist &&cmp_bl, bufferlist &&bl, uint64_t *mismatch_offset, + int op_flags, const ZTracer::Trace &parent_trace, + uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) override; bool flush( diff --git a/src/librbd/io/RefreshImageDispatch.cc b/src/librbd/io/RefreshImageDispatch.cc index 4af3f368311..4d265c44380 100644 --- a/src/librbd/io/RefreshImageDispatch.cc +++ b/src/librbd/io/RefreshImageDispatch.cc @@ -49,7 +49,7 @@ bool RefreshImageDispatch::read( template bool RefreshImageDispatch::write( AioCompletion* aio_comp, Extents &&image_extents, bufferlist &&bl, - IOContext io_context, int op_flags, const ZTracer::Trace &parent_trace, + int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) { @@ -67,9 +67,8 @@ bool RefreshImageDispatch::write( template bool RefreshImageDispatch::discard( AioCompletion* aio_comp, Extents &&image_extents, - uint32_t discard_granularity_bytes, IOContext io_context, - const ZTracer::Trace &parent_trace, uint64_t tid, - std::atomic* image_dispatch_flags, + uint32_t discard_granularity_bytes, const ZTracer::Trace &parent_trace, + uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) { auto cct = m_image_ctx->cct; @@ -86,7 +85,7 @@ bool RefreshImageDispatch::discard( template bool RefreshImageDispatch::write_same( AioCompletion* aio_comp, Extents &&image_extents, bufferlist &&bl, - IOContext io_context, int op_flags, const ZTracer::Trace &parent_trace, + int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) { @@ -103,10 +102,10 @@ bool RefreshImageDispatch::write_same( template bool RefreshImageDispatch::compare_and_write( - AioCompletion* aio_comp, Extents &&image_extents, bufferlist &&cmp_bl, - bufferlist &&bl, uint64_t *mismatch_offset, IOContext io_context, - int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, - std::atomic* image_dispatch_flags, + AioCompletion* aio_comp, Extents &&image_extents, + bufferlist &&cmp_bl, bufferlist &&bl, uint64_t *mismatch_offset, + int op_flags, const ZTracer::Trace &parent_trace, + uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) { auto cct = m_image_ctx->cct; diff --git a/src/librbd/io/RefreshImageDispatch.h b/src/librbd/io/RefreshImageDispatch.h index 1bcb3c312cf..668dec4195a 100644 --- a/src/librbd/io/RefreshImageDispatch.h +++ b/src/librbd/io/RefreshImageDispatch.h @@ -42,28 +42,27 @@ public: Context* on_dispatched) override; bool write( AioCompletion* aio_comp, Extents &&image_extents, bufferlist &&bl, - IOContext io_context, int op_flags, const ZTracer::Trace &parent_trace, + int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) override; bool discard( AioCompletion* aio_comp, Extents &&image_extents, - uint32_t discard_granularity_bytes, IOContext io_context, - const ZTracer::Trace &parent_trace, uint64_t tid, - std::atomic* image_dispatch_flags, + uint32_t discard_granularity_bytes, const ZTracer::Trace &parent_trace, + uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) override; bool write_same( AioCompletion* aio_comp, Extents &&image_extents, bufferlist &&bl, - IOContext io_context, int op_flags, const ZTracer::Trace &parent_trace, + int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) override; bool compare_and_write( - AioCompletion* aio_comp, Extents &&image_extents, bufferlist &&cmp_bl, - bufferlist &&bl, uint64_t *mismatch_offset, IOContext io_context, - int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, - std::atomic* image_dispatch_flags, + AioCompletion* aio_comp, Extents &&image_extents, + bufferlist &&cmp_bl, bufferlist &&bl, uint64_t *mismatch_offset, + int op_flags, const ZTracer::Trace &parent_trace, + uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) override; bool flush( diff --git a/src/librbd/io/WriteBlockImageDispatch.cc b/src/librbd/io/WriteBlockImageDispatch.cc index 4439a15a797..57d181d20e3 100644 --- a/src/librbd/io/WriteBlockImageDispatch.cc +++ b/src/librbd/io/WriteBlockImageDispatch.cc @@ -127,7 +127,7 @@ void WriteBlockImageDispatch::wait_on_writes_unblocked( template bool WriteBlockImageDispatch::write( AioCompletion* aio_comp, Extents &&image_extents, bufferlist &&bl, - IOContext io_context, int op_flags, const ZTracer::Trace &parent_trace, + int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) { @@ -140,9 +140,8 @@ bool WriteBlockImageDispatch::write( template bool WriteBlockImageDispatch::discard( AioCompletion* aio_comp, Extents &&image_extents, - uint32_t discard_granularity_bytes, IOContext io_context, - const ZTracer::Trace &parent_trace, uint64_t tid, - std::atomic* image_dispatch_flags, + uint32_t discard_granularity_bytes, const ZTracer::Trace &parent_trace, + uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) { auto cct = m_image_ctx->cct; @@ -154,7 +153,7 @@ bool WriteBlockImageDispatch::discard( template bool WriteBlockImageDispatch::write_same( AioCompletion* aio_comp, Extents &&image_extents, bufferlist &&bl, - IOContext io_context, int op_flags, const ZTracer::Trace &parent_trace, + int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) { @@ -166,10 +165,10 @@ bool WriteBlockImageDispatch::write_same( template bool WriteBlockImageDispatch::compare_and_write( - AioCompletion* aio_comp, Extents &&image_extents, bufferlist &&cmp_bl, - bufferlist &&bl, uint64_t *mismatch_offset, IOContext io_context, - int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, - std::atomic* image_dispatch_flags, + AioCompletion* aio_comp, Extents &&image_extents, + bufferlist &&cmp_bl, bufferlist &&bl, uint64_t *mismatch_offset, + int op_flags, const ZTracer::Trace &parent_trace, + uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) { auto cct = m_image_ctx->cct; diff --git a/src/librbd/io/WriteBlockImageDispatch.h b/src/librbd/io/WriteBlockImageDispatch.h index 9d200fb9753..b1d0ddb0ed0 100644 --- a/src/librbd/io/WriteBlockImageDispatch.h +++ b/src/librbd/io/WriteBlockImageDispatch.h @@ -57,28 +57,27 @@ public: } bool write( AioCompletion* aio_comp, Extents &&image_extents, bufferlist &&bl, - IOContext io_context, int op_flags, const ZTracer::Trace &parent_trace, + int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) override; bool discard( AioCompletion* aio_comp, Extents &&image_extents, - uint32_t discard_granularity_bytes, IOContext io_context, - const ZTracer::Trace &parent_trace, uint64_t tid, - std::atomic* image_dispatch_flags, + uint32_t discard_granularity_bytes, const ZTracer::Trace &parent_trace, + uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) override; bool write_same( AioCompletion* aio_comp, Extents &&image_extents, bufferlist &&bl, - IOContext io_context, int op_flags, const ZTracer::Trace &parent_trace, + int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) override; bool compare_and_write( - AioCompletion* aio_comp, Extents &&image_extents, bufferlist &&cmp_bl, - bufferlist &&bl, uint64_t *mismatch_offset, IOContext io_context, - int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, - std::atomic* image_dispatch_flags, + AioCompletion* aio_comp, Extents &&image_extents, + bufferlist &&cmp_bl, bufferlist &&bl, uint64_t *mismatch_offset, + int op_flags, const ZTracer::Trace &parent_trace, + uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) override; bool flush( diff --git a/src/librbd/migration/ImageDispatch.cc b/src/librbd/migration/ImageDispatch.cc index 3aa2eeb0bcb..1ae143d7861 100644 --- a/src/librbd/migration/ImageDispatch.cc +++ b/src/librbd/migration/ImageDispatch.cc @@ -52,7 +52,7 @@ bool ImageDispatch::read( template bool ImageDispatch::write( io::AioCompletion* aio_comp, io::Extents &&image_extents, bufferlist &&bl, - IOContext io_context, int op_flags, const ZTracer::Trace &parent_trace, + int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, io::DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) { @@ -66,9 +66,8 @@ bool ImageDispatch::write( template bool ImageDispatch::discard( io::AioCompletion* aio_comp, io::Extents &&image_extents, - uint32_t discard_granularity_bytes, - IOContext io_context, const ZTracer::Trace &parent_trace, uint64_t tid, - std::atomic* image_dispatch_flags, + uint32_t discard_granularity_bytes, const ZTracer::Trace &parent_trace, + uint64_t tid, std::atomic* image_dispatch_flags, io::DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) { auto cct = m_image_ctx->cct; @@ -81,7 +80,7 @@ bool ImageDispatch::discard( template bool ImageDispatch::write_same( io::AioCompletion* aio_comp, io::Extents &&image_extents, bufferlist &&bl, - IOContext io_context, int op_flags, const ZTracer::Trace &parent_trace, + int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, io::DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) { @@ -96,7 +95,7 @@ template bool ImageDispatch::compare_and_write( io::AioCompletion* aio_comp, io::Extents &&image_extents, bufferlist &&cmp_bl, bufferlist &&bl, uint64_t *mismatch_offset, - IOContext io_context, int op_flags, const ZTracer::Trace &parent_trace, + int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, io::DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) { diff --git a/src/librbd/migration/ImageDispatch.h b/src/librbd/migration/ImageDispatch.h index 03bb3aa5213..cd96141c0cc 100644 --- a/src/librbd/migration/ImageDispatch.h +++ b/src/librbd/migration/ImageDispatch.h @@ -42,27 +42,26 @@ public: Context* on_dispatched) override; bool write( io::AioCompletion* aio_comp, io::Extents &&image_extents, bufferlist &&bl, - IOContext io_context, int op_flags, const ZTracer::Trace &parent_trace, + int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, io::DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) override; bool discard( io::AioCompletion* aio_comp, io::Extents &&image_extents, - uint32_t discard_granularity_bytes, - IOContext io_context, const ZTracer::Trace &parent_trace, uint64_t tid, - std::atomic* image_dispatch_flags, + uint32_t discard_granularity_bytes, const ZTracer::Trace &parent_trace, + uint64_t tid, std::atomic* image_dispatch_flags, io::DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) override; bool write_same( io::AioCompletion* aio_comp, io::Extents &&image_extents, bufferlist &&bl, - IOContext io_context, int op_flags, const ZTracer::Trace &parent_trace, + int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, io::DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) override; bool compare_and_write( io::AioCompletion* aio_comp, io::Extents &&image_extents, bufferlist &&cmp_bl, bufferlist &&bl, uint64_t *mismatch_offset, - IOContext io_context, int op_flags, const ZTracer::Trace &parent_trace, + int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, io::DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) override; diff --git a/src/test/librbd/io/test_mock_ImageRequest.cc b/src/test/librbd/io/test_mock_ImageRequest.cc index 546f2d04d96..9d6423d66c4 100644 --- a/src/test/librbd/io/test_mock_ImageRequest.cc +++ b/src/test/librbd/io/test_mock_ImageRequest.cc @@ -211,7 +211,7 @@ TEST_F(TestMockIoImageRequest, AioWriteModifyTimestamp) { bl.append("1"); MockImageWriteRequest mock_aio_image_write_1( mock_image_ctx, aio_comp_1, {{0, 1}}, ImageArea::DATA, std::move(bl), - mock_image_ctx.get_data_io_context(), 0, {}); + 0, {}); { std::shared_lock owner_locker{mock_image_ctx.owner_lock}; mock_aio_image_write_1.send(); @@ -224,7 +224,7 @@ TEST_F(TestMockIoImageRequest, AioWriteModifyTimestamp) { bl.append("1"); MockImageWriteRequest mock_aio_image_write_2( mock_image_ctx, aio_comp_2, {{0, 1}}, ImageArea::DATA, std::move(bl), - mock_image_ctx.get_data_io_context(), 0, {}); + 0, {}); { std::shared_lock owner_locker{mock_image_ctx.owner_lock}; mock_aio_image_write_2.send(); @@ -306,7 +306,7 @@ TEST_F(TestMockIoImageRequest, PartialDiscard) { &aio_comp_ctx, ictx, AIO_TYPE_DISCARD); MockImageDiscardRequest mock_aio_image_discard( mock_image_ctx, aio_comp, {{16, 63}, {84, 100}}, ImageArea::DATA, - ictx->discard_granularity_bytes, mock_image_ctx.get_data_io_context(), {}); + ictx->discard_granularity_bytes, {}); { std::shared_lock owner_locker{mock_image_ctx.owner_lock}; mock_aio_image_discard.send(); @@ -334,7 +334,7 @@ TEST_F(TestMockIoImageRequest, TailDiscard) { MockImageDiscardRequest mock_aio_image_discard( mock_image_ctx, aio_comp, {{ictx->layout.object_size - 1024, 1024}}, ImageArea::DATA, - ictx->discard_granularity_bytes, mock_image_ctx.get_data_io_context(), {}); + ictx->discard_granularity_bytes, {}); { std::shared_lock owner_locker{mock_image_ctx.owner_lock}; mock_aio_image_discard.send(); @@ -364,8 +364,7 @@ TEST_F(TestMockIoImageRequest, DiscardGranularity) { MockImageDiscardRequest mock_aio_image_discard( mock_image_ctx, aio_comp, {{16, 63}, {96, 31}, {84, 100}, {ictx->layout.object_size - 33, 33}}, - ImageArea::DATA, ictx->discard_granularity_bytes, - mock_image_ctx.get_data_io_context(), {}); + ImageArea::DATA, ictx->discard_granularity_bytes, {}); { std::shared_lock owner_locker{mock_image_ctx.owner_lock}; mock_aio_image_discard.send(); @@ -397,7 +396,7 @@ TEST_F(TestMockIoImageRequest, PartialDiscardJournalAppendEnabled) { &aio_comp_ctx, ictx, AIO_TYPE_DISCARD); MockImageDiscardRequest mock_aio_image_discard( mock_image_ctx, aio_comp, {{16, 63}, {84, 100}}, ImageArea::DATA, - ictx->discard_granularity_bytes, mock_image_ctx.get_data_io_context(), {}); + ictx->discard_granularity_bytes, {}); { std::shared_lock owner_locker{mock_image_ctx.owner_lock}; mock_aio_image_discard.send(); @@ -431,7 +430,7 @@ TEST_F(TestMockIoImageRequest, TailDiscardJournalAppendEnabled) { MockImageDiscardRequest mock_aio_image_discard( mock_image_ctx, aio_comp, {{ictx->layout.object_size - 1024, 1024}}, ImageArea::DATA, - ictx->discard_granularity_bytes, mock_image_ctx.get_data_io_context(), {}); + ictx->discard_granularity_bytes, {}); { std::shared_lock owner_locker{mock_image_ctx.owner_lock}; mock_aio_image_discard.send(); @@ -460,9 +459,8 @@ TEST_F(TestMockIoImageRequest, PruneRequiredDiscardJournalAppendEnabled) { AioCompletion *aio_comp = AioCompletion::create_and_start( &aio_comp_ctx, ictx, AIO_TYPE_DISCARD); MockImageDiscardRequest mock_aio_image_discard( - mock_image_ctx, aio_comp, {{96, 31}}, - ImageArea::DATA, ictx->discard_granularity_bytes, - mock_image_ctx.get_data_io_context(), {}); + mock_image_ctx, aio_comp, {{96, 31}}, ImageArea::DATA, + ictx->discard_granularity_bytes, {}); { std::shared_lock owner_locker{mock_image_ctx.owner_lock}; mock_aio_image_discard.send(); @@ -491,9 +489,8 @@ TEST_F(TestMockIoImageRequest, LengthModifiedDiscardJournalAppendEnabled) { AioCompletion *aio_comp = AioCompletion::create_and_start( &aio_comp_ctx, ictx, AIO_TYPE_DISCARD); MockImageDiscardRequest mock_aio_image_discard( - mock_image_ctx, aio_comp, {{16, 63}}, - ImageArea::DATA, ictx->discard_granularity_bytes, - mock_image_ctx.get_data_io_context(), {}); + mock_image_ctx, aio_comp, {{16, 63}}, ImageArea::DATA, + ictx->discard_granularity_bytes, {}); { std::shared_lock owner_locker{mock_image_ctx.owner_lock}; mock_aio_image_discard.send(); @@ -531,8 +528,7 @@ TEST_F(TestMockIoImageRequest, DiscardGranularityJournalAppendEnabled) { MockImageDiscardRequest mock_aio_image_discard( mock_image_ctx, aio_comp, {{16, 63}, {96, 31}, {84, 100}, {ictx->layout.object_size - 33, 33}}, - ImageArea::DATA, ictx->discard_granularity_bytes, - mock_image_ctx.get_data_io_context(), {}); + ImageArea::DATA, ictx->discard_granularity_bytes, {}); { std::shared_lock owner_locker{mock_image_ctx.owner_lock}; mock_aio_image_discard.send(); @@ -562,8 +558,7 @@ TEST_F(TestMockIoImageRequest, AioWriteJournalAppendDisabled) { bufferlist bl; bl.append("1"); MockImageWriteRequest mock_aio_image_write( - mock_image_ctx, aio_comp, {{0, 1}}, ImageArea::DATA, std::move(bl), - mock_image_ctx.get_data_io_context(), 0, {}); + mock_image_ctx, aio_comp, {{0, 1}}, ImageArea::DATA, std::move(bl), 0, {}); { std::shared_lock owner_locker{mock_image_ctx.owner_lock}; mock_aio_image_write.send(); @@ -592,7 +587,7 @@ TEST_F(TestMockIoImageRequest, AioDiscardJournalAppendDisabled) { &aio_comp_ctx, ictx, AIO_TYPE_DISCARD); MockImageDiscardRequest mock_aio_image_discard( mock_image_ctx, aio_comp, {{0, 1}}, ImageArea::DATA, - ictx->discard_granularity_bytes, mock_image_ctx.get_data_io_context(), {}); + ictx->discard_granularity_bytes, {}); { std::shared_lock owner_locker{mock_image_ctx.owner_lock}; mock_aio_image_discard.send(); @@ -650,8 +645,7 @@ TEST_F(TestMockIoImageRequest, AioWriteSameJournalAppendDisabled) { bufferlist bl; bl.append("1"); MockImageWriteSameRequest mock_aio_image_writesame( - mock_image_ctx, aio_comp, {{0, 1}}, ImageArea::DATA, std::move(bl), - mock_image_ctx.get_data_io_context(), 0, {}); + mock_image_ctx, aio_comp, {{0, 1}}, ImageArea::DATA, std::move(bl), 0, {}); { std::shared_lock owner_locker{mock_image_ctx.owner_lock}; mock_aio_image_writesame.send(); @@ -685,8 +679,7 @@ TEST_F(TestMockIoImageRequest, AioCompareAndWriteJournalAppendDisabled) { uint64_t mismatch_offset; MockImageCompareAndWriteRequest mock_aio_image_write( mock_image_ctx, aio_comp, {{0, 1}}, ImageArea::DATA, - std::move(cmp_bl), std::move(write_bl), &mismatch_offset, - mock_image_ctx.get_data_io_context(), 0, {}); + std::move(cmp_bl), std::move(write_bl), &mismatch_offset, 0, {}); { std::shared_lock owner_locker{mock_image_ctx.owner_lock}; mock_aio_image_write.send(); diff --git a/src/test/librbd/journal/test_mock_Replay.cc b/src/test/librbd/journal/test_mock_Replay.cc index 7bed2532aa8..9eb31618e0e 100644 --- a/src/test/librbd/journal/test_mock_Replay.cc +++ b/src/test/librbd/journal/test_mock_Replay.cc @@ -32,7 +32,7 @@ struct ImageRequest { const bufferlist &bl, int op_flags)); static void aio_write(MockReplayImageCtx *ictx, AioCompletion *c, Extents&& image_extents, ImageArea area, - bufferlist&& bl, IOContext io_context, int op_flags, + bufferlist&& bl, int op_flags, const ZTracer::Trace &parent_trace) { ceph_assert(s_instance != nullptr); s_instance->aio_write(c, image_extents, bl, op_flags); @@ -43,7 +43,6 @@ struct ImageRequest { static void aio_discard(MockReplayImageCtx *ictx, AioCompletion *c, Extents&& image_extents, ImageArea area, uint32_t discard_granularity_bytes, - IOContext io_context, const ZTracer::Trace &parent_trace) { ceph_assert(s_instance != nullptr); s_instance->aio_discard(c, image_extents, discard_granularity_bytes); @@ -62,7 +61,7 @@ struct ImageRequest { int op_flags)); static void aio_writesame(MockReplayImageCtx *ictx, AioCompletion *c, Extents&& image_extents, ImageArea area, - bufferlist&& bl, IOContext io_context, int op_flags, + bufferlist&& bl, int op_flags, const ZTracer::Trace &parent_trace) { ceph_assert(s_instance != nullptr); s_instance->aio_writesame(c, image_extents, bl, op_flags); @@ -75,8 +74,7 @@ struct ImageRequest { static void aio_compare_and_write(MockReplayImageCtx *ictx, AioCompletion *c, Extents&& image_extents, ImageArea area, bufferlist&& cmp_bl, bufferlist&& bl, - uint64_t* mismatch_offset, - IOContext io_context, int op_flags, + uint64_t* mismatch_offset, int op_flags, const ZTracer::Trace &parent_trace) { ceph_assert(s_instance != nullptr); s_instance->aio_compare_and_write(c, image_extents, cmp_bl, bl, diff --git a/src/test/librbd/mock/io/MockImageDispatch.h b/src/test/librbd/mock/io/MockImageDispatch.h index 02dff3487b6..f9552bebeff 100644 --- a/src/test/librbd/mock/io/MockImageDispatch.h +++ b/src/test/librbd/mock/io/MockImageDispatch.h @@ -32,7 +32,7 @@ public: bool write( AioCompletion* aio_comp, Extents &&image_extents, bufferlist &&bl, - IOContext io_context, int op_flags, const ZTracer::Trace &parent_trace, + int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) override { @@ -41,9 +41,8 @@ public: bool discard( AioCompletion* aio_comp, Extents &&image_extents, - uint32_t discard_granularity_bytes, IOContext io_context, - const ZTracer::Trace &parent_trace, uint64_t tid, - std::atomic* image_dispatch_flags, + uint32_t discard_granularity_bytes, const ZTracer::Trace &parent_trace, + uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) override { return false; @@ -51,7 +50,7 @@ public: bool write_same( AioCompletion* aio_comp, Extents &&image_extents, bufferlist &&bl, - IOContext io_context, int op_flags, const ZTracer::Trace &parent_trace, + int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) override { @@ -59,10 +58,10 @@ public: } bool compare_and_write( - AioCompletion* aio_comp, Extents &&image_extents, bufferlist &&cmp_bl, - bufferlist &&bl, uint64_t *mismatch_offset, IOContext io_context, - int op_flags, const ZTracer::Trace &parent_trace, uint64_t tid, - std::atomic* image_dispatch_flags, + AioCompletion* aio_comp, Extents &&image_extents, + bufferlist &&cmp_bl, bufferlist &&bl, uint64_t *mismatch_offset, + int op_flags, const ZTracer::Trace &parent_trace, + uint64_t tid, std::atomic* image_dispatch_flags, DispatchResult* dispatch_result, Context** on_finish, Context* on_dispatched) override { return false;