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: v16.2.14~63^2~1 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=17bb979aaca3d53de47b80bec85c8fe6cee76115;p=ceph.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 (cherry picked from commit 584f865ae116185087176715ced014b625f04e82) Conflicts: src/librbd/api/Io.cc [ commit 37057ba2f6bb ("librbd: pass image_extents to create_{discard,write_same}()") and ImageArea support not in pacific ] src/librbd/cache/ImageWriteback.cc [ ditto ] src/librbd/io/ImageDispatchSpec.h [ ditto ] src/librbd/crypto/luks/FormatRequest.cc [ ImageArea support not in pacific ] src/test/librbd/io/test_mock_ImageRequest.cc [ ditto ] src/test/librbd/journal/test_mock_Replay.cc [ ditto ] src/librbd/crypto/luks/FlattenRequest.cc [ commit 84601d68a74f ("librbd/crypto: add format-specific flattening operation") not in pacific ] --- diff --git a/src/librbd/api/Io.cc b/src/librbd/api/Io.cc index 31b48b3f6b8d5..3ce8a02f4022f 100644 --- a/src/librbd/api/Io.cc +++ b/src/librbd/api/Io.cc @@ -263,8 +263,8 @@ 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}}, - std::move(bl), image_ctx.get_data_io_context(), op_flags, trace); + image_ctx, io::IMAGE_DISPATCH_LAYER_API_START, aio_comp, + {{off, len}}, std::move(bl), op_flags, trace); req->send(); } @@ -294,8 +294,8 @@ 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, - discard_granularity_bytes, image_ctx.get_data_io_context(), trace); + image_ctx, io::IMAGE_DISPATCH_LAYER_API_START, aio_comp, + off, len, discard_granularity_bytes, trace); req->send(); } @@ -326,8 +326,8 @@ 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, - std::move(bl), image_ctx.get_data_io_context(), op_flags, trace); + image_ctx, io::IMAGE_DISPATCH_LAYER_API_START, aio_comp, + off, len, std::move(bl), op_flags, trace); req->send(); } @@ -399,8 +399,8 @@ 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}}, - std::move(bl), image_ctx.get_data_io_context(), op_flags, trace); + image_ctx, io::IMAGE_DISPATCH_LAYER_API_START, aio_comp, + {{off, len}}, std::move(bl), op_flags, trace); req->send(); return; } else if (prepend_length == 0 && append_length == 0) { @@ -409,8 +409,8 @@ void Io::aio_write_zeroes(I& image_ctx, io::AioCompletion *aio_comp, bl.append_zero(data_length); auto req = io::ImageDispatchSpec::create_write_same( - image_ctx, io::IMAGE_DISPATCH_LAYER_API_START, aio_comp, off, len, - std::move(bl), image_ctx.get_data_io_context(), op_flags, trace); + image_ctx, io::IMAGE_DISPATCH_LAYER_API_START, aio_comp, + off, len, std::move(bl), op_flags, trace); req->send(); return; } @@ -437,9 +437,9 @@ void Io::aio_write_zeroes(I& image_ctx, io::AioCompletion *aio_comp, auto prepend_aio_comp = io::AioCompletion::create_and_start( prepend_ctx, &image_ctx, io::AIO_TYPE_WRITE); auto prepend_req = io::ImageDispatchSpec::create_write( - image_ctx, io::IMAGE_DISPATCH_LAYER_API_START, prepend_aio_comp, - {{prepend_offset, prepend_length}}, std::move(bl), - image_ctx.get_data_io_context(), op_flags, trace); + image_ctx, io::IMAGE_DISPATCH_LAYER_API_START, prepend_aio_comp, + {{prepend_offset, prepend_length}}, + std::move(bl), op_flags, trace); prepend_req->send(); } @@ -451,9 +451,9 @@ void Io::aio_write_zeroes(I& image_ctx, io::AioCompletion *aio_comp, auto append_aio_comp = io::AioCompletion::create_and_start( append_ctx, &image_ctx, io::AIO_TYPE_WRITE); auto append_req = io::ImageDispatchSpec::create_write( - image_ctx, io::IMAGE_DISPATCH_LAYER_API_START, append_aio_comp, - {{append_offset, append_length}}, std::move(bl), - image_ctx.get_data_io_context(), op_flags, trace); + image_ctx, io::IMAGE_DISPATCH_LAYER_API_START, append_aio_comp, + {{append_offset, append_length}}, + std::move(bl), op_flags, trace); append_req->send(); } @@ -464,9 +464,9 @@ void Io::aio_write_zeroes(I& image_ctx, io::AioCompletion *aio_comp, auto write_same_aio_comp = io::AioCompletion::create_and_start( write_same_ctx, &image_ctx, io::AIO_TYPE_WRITESAME); 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, std::move(bl), - image_ctx.get_data_io_context(), op_flags, trace); + image_ctx, io::IMAGE_DISPATCH_LAYER_API_START, write_same_aio_comp, + write_same_offset, write_same_length, + std::move(bl), op_flags, trace); req->send(); return; } @@ -475,8 +475,8 @@ void Io::aio_write_zeroes(I& image_ctx, io::AioCompletion *aio_comp, uint32_t discard_granularity_bytes = 0; auto req = io::ImageDispatchSpec::create_discard( - image_ctx, io::IMAGE_DISPATCH_LAYER_API_START, aio_comp, off, len, - discard_granularity_bytes, image_ctx.get_data_io_context(), trace); + image_ctx, io::IMAGE_DISPATCH_LAYER_API_START, aio_comp, + off, len, discard_granularity_bytes, trace); req->send(); } @@ -509,9 +509,9 @@ 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}}, - std::move(cmp_bl), std::move(bl), mismatch_off, - image_ctx.get_data_io_context(), op_flags, trace); + image_ctx, io::IMAGE_DISPATCH_LAYER_API_START, aio_comp, + {{off, len}}, std::move(cmp_bl), std::move(bl), + mismatch_off, op_flags, trace); req->send(); } diff --git a/src/librbd/cache/ImageWriteback.cc b/src/librbd/cache/ImageWriteback.cc index dcbba42ba9ef5..631de0c36d399 100644 --- a/src/librbd/cache/ImageWriteback.cc +++ b/src/librbd/cache/ImageWriteback.cc @@ -57,7 +57,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), std::move(bl), - image_ctx->get_data_io_context(), fadvise_flags, trace); + fadvise_flags, trace); req->send(); } @@ -75,9 +75,8 @@ void ImageWriteback::aio_discard(uint64_t offset, uint64_t length, on_finish, image_ctx, io::AIO_TYPE_DISCARD); ZTracer::Trace trace; auto req = io::ImageDispatchSpec::create_discard( - *image_ctx, io::IMAGE_DISPATCH_LAYER_WRITEBACK_CACHE, aio_comp, offset, - length, discard_granularity_bytes, - image_ctx->get_data_io_context(), trace); + *image_ctx, io::IMAGE_DISPATCH_LAYER_WRITEBACK_CACHE, aio_comp, + offset, length, discard_granularity_bytes, trace); req->send(); } @@ -113,8 +112,8 @@ void ImageWriteback::aio_writesame(uint64_t offset, uint64_t length, on_finish, image_ctx, io::AIO_TYPE_WRITESAME); ZTracer::Trace trace; auto req = io::ImageDispatchSpec::create_write_same( - *image_ctx, io::IMAGE_DISPATCH_LAYER_WRITEBACK_CACHE, aio_comp, offset, - length, std::move(bl), image_ctx->get_data_io_context(), + *image_ctx, io::IMAGE_DISPATCH_LAYER_WRITEBACK_CACHE, aio_comp, + offset, length, std::move(bl), fadvise_flags, trace); req->send(); } @@ -136,9 +135,8 @@ void ImageWriteback::aio_compare_and_write(Extents &&image_extents, ZTracer::Trace trace; auto req = io::ImageDispatchSpec::create_compare_and_write( *image_ctx, io::IMAGE_DISPATCH_LAYER_WRITEBACK_CACHE, aio_comp, - std::move(image_extents), std::move(cmp_bl), std::move(bl), - mismatch_offset, image_ctx->get_data_io_context(), - fadvise_flags, trace); + std::move(image_extents), std::move(cmp_bl), + 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 6cb8738e7f9ef..077d5484a0e15 100644 --- a/src/librbd/cache/WriteLogImageDispatch.cc +++ b/src/librbd/cache/WriteLogImageDispatch.cc @@ -67,7 +67,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) { @@ -89,8 +89,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) { @@ -114,10 +113,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) { auto cct = m_image_ctx->cct; @@ -140,10 +138,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) { auto cct = m_image_ctx->cct; diff --git a/src/librbd/cache/WriteLogImageDispatch.h b/src/librbd/cache/WriteLogImageDispatch.h index 9344916237ed3..f68f37dc750c7 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 dae3dac853b1d..c7d25f16a147f 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/FormatRequest.cc b/src/librbd/crypto/luks/FormatRequest.cc index be2452fd924c3..9c10df61f60ab 100644 --- a/src/librbd/crypto/luks/FormatRequest.cc +++ b/src/librbd/crypto/luks/FormatRequest.cc @@ -146,8 +146,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()}}, std::move(bl), - m_image_ctx->get_data_io_context(), 0, trace); + {{0, bl.length()}}, std::move(bl), 0, trace); req->send(); } diff --git a/src/librbd/exclusive_lock/ImageDispatch.cc b/src/librbd/exclusive_lock/ImageDispatch.cc index f53b3692a1b1c..5939c7a819682 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 77c101973efe3..c0d9d49f54c4f 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 0c173dd2661fe..3286618a4f243 100644 --- a/src/librbd/io/ImageDispatch.cc +++ b/src/librbd/io/ImageDispatch.cc @@ -55,7 +55,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) { @@ -73,9 +73,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; @@ -92,7 +91,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) { @@ -110,10 +109,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 3d302e9a62a04..4a89c605450ee 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 64cea861286d9..7e2ae73996006 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 ee95f21be63f7..8771f5bc6eca4 100644 --- a/src/librbd/io/ImageDispatchSpec.h +++ b/src/librbd/io/ImageDispatchSpec.h @@ -139,36 +139,35 @@ public: static ImageDispatchSpec* create_discard( ImageCtxT &image_ctx, ImageDispatchLayer image_dispatch_layer, AioCompletion *aio_comp, uint64_t off, uint64_t len, - 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, {{off, len}}, 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, - 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), Write{std::move(bl)}, - io_context, op_flags, parent_trace); + std::move(image_extents), + Write{std::move(bl)}, + {}, op_flags, parent_trace); } template static ImageDispatchSpec* create_write_same( ImageCtxT &image_ctx, ImageDispatchLayer image_dispatch_layer, AioCompletion *aio_comp, uint64_t off, uint64_t len, - 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, - {{off, len}}, WriteSame{std::move(bl)}, - io_context, op_flags, parent_trace); + {{off, len}}, + WriteSame{std::move(bl)}, + {}, op_flags, parent_trace); } template @@ -176,14 +175,14 @@ public: ImageCtxT &image_ctx, ImageDispatchLayer image_dispatch_layer, 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) { + 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), 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 7060f8328fb53..17dea5bf157ee 100644 --- a/src/librbd/io/ImageDispatcher.cc +++ b/src/librbd/io/ImageDispatcher.cc @@ -52,9 +52,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); @@ -64,33 +63,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 9ca88ac1916aa..2b8ec7bbd0a25 100644 --- a/src/librbd/io/QosImageDispatch.cc +++ b/src/librbd/io/QosImageDispatch.cc @@ -136,7 +136,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) { @@ -155,9 +155,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; @@ -175,7 +174,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) { @@ -193,10 +192,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 baf16da02be0e..0ca6634cf1507 100644 --- a/src/librbd/io/QosImageDispatch.h +++ b/src/librbd/io/QosImageDispatch.h @@ -59,28 +59,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 e80d39e44210e..ea5ed63b4be50 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 60ee467502dad..9a41927ba379b 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 5199f01d85d8f..3141faf2526f6 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 1bcb3c312cf7a..668dec4195a4d 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 4439a15a797ed..57d181d20e30d 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 9d200fb975306..b1d0ddb0ed094 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 3aa2eeb0bcb0a..1ae143d78615a 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 03bb3aa521373..cd96141c0cc74 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 2181ff33ca188..48a4b2a397fcd 100644 --- a/src/test/librbd/io/test_mock_ImageRequest.cc +++ b/src/test/librbd/io/test_mock_ImageRequest.cc @@ -203,7 +203,7 @@ TEST_F(TestMockIoImageRequest, AioWriteModifyTimestamp) { bl.append("1"); MockImageWriteRequest mock_aio_image_write_1( mock_image_ctx, aio_comp_1, {{0, 1}}, 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(); @@ -216,7 +216,7 @@ TEST_F(TestMockIoImageRequest, AioWriteModifyTimestamp) { bl.append("1"); MockImageWriteRequest mock_aio_image_write_2( mock_image_ctx, aio_comp_2, {{0, 1}}, 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(); @@ -298,7 +298,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}}, - 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(); @@ -326,7 +326,7 @@ TEST_F(TestMockIoImageRequest, TailDiscard) { MockImageDiscardRequest mock_aio_image_discard( mock_image_ctx, aio_comp, {{ictx->layout.object_size - 1024, 1024}}, - 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(); @@ -356,7 +356,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}}, - 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(); @@ -388,7 +388,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}}, - 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(); @@ -420,8 +420,9 @@ TEST_F(TestMockIoImageRequest, TailDiscardJournalAppendEnabled) { AioCompletion *aio_comp = AioCompletion::create_and_start( &aio_comp_ctx, ictx, AIO_TYPE_DISCARD); MockImageDiscardRequest mock_aio_image_discard( - mock_image_ctx, aio_comp, {{ictx->layout.object_size - 1024, 1024}}, - ictx->discard_granularity_bytes, mock_image_ctx.get_data_io_context(), {}); + mock_image_ctx, aio_comp, + {{ictx->layout.object_size - 1024, 1024}}, + ictx->discard_granularity_bytes, {}); { std::shared_lock owner_locker{mock_image_ctx.owner_lock}; mock_aio_image_discard.send(); @@ -450,8 +451,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}}, ictx->discard_granularity_bytes, - mock_image_ctx.get_data_io_context(), {}); + mock_image_ctx, aio_comp, {{96, 31}}, + ictx->discard_granularity_bytes, {}); { std::shared_lock owner_locker{mock_image_ctx.owner_lock}; mock_aio_image_discard.send(); @@ -480,8 +481,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}}, ictx->discard_granularity_bytes, - mock_image_ctx.get_data_io_context(), {}); + mock_image_ctx, aio_comp, {{16, 63}}, + ictx->discard_granularity_bytes, {}); { std::shared_lock owner_locker{mock_image_ctx.owner_lock}; mock_aio_image_discard.send(); @@ -519,7 +520,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}}, - 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(); @@ -549,8 +550,7 @@ TEST_F(TestMockIoImageRequest, AioWriteJournalAppendDisabled) { bufferlist bl; bl.append("1"); MockImageWriteRequest mock_aio_image_write( - mock_image_ctx, aio_comp, {{0, 1}}, std::move(bl), - mock_image_ctx.get_data_io_context(), 0, {}); + mock_image_ctx, aio_comp, {{0, 1}}, std::move(bl), 0, {}); { std::shared_lock owner_locker{mock_image_ctx.owner_lock}; mock_aio_image_write.send(); @@ -578,8 +578,8 @@ TEST_F(TestMockIoImageRequest, AioDiscardJournalAppendDisabled) { AioCompletion *aio_comp = AioCompletion::create_and_start( &aio_comp_ctx, ictx, AIO_TYPE_DISCARD); MockImageDiscardRequest mock_aio_image_discard( - mock_image_ctx, aio_comp, {{0, 1}}, ictx->discard_granularity_bytes, - mock_image_ctx.get_data_io_context(), {}); + mock_image_ctx, aio_comp, {{0, 1}}, + ictx->discard_granularity_bytes, {}); { std::shared_lock owner_locker{mock_image_ctx.owner_lock}; mock_aio_image_discard.send(); @@ -637,8 +637,7 @@ TEST_F(TestMockIoImageRequest, AioWriteSameJournalAppendDisabled) { bufferlist bl; bl.append("1"); MockImageWriteSameRequest mock_aio_image_writesame( - mock_image_ctx, aio_comp, {{0, 1}}, std::move(bl), - mock_image_ctx.get_data_io_context(), 0, {}); + mock_image_ctx, aio_comp, {{0, 1}}, std::move(bl), 0, {}); { std::shared_lock owner_locker{mock_image_ctx.owner_lock}; mock_aio_image_writesame.send(); @@ -671,8 +670,8 @@ TEST_F(TestMockIoImageRequest, AioCompareAndWriteJournalAppendDisabled) { write_bl.append("1"); uint64_t mismatch_offset; MockImageCompareAndWriteRequest mock_aio_image_write( - mock_image_ctx, aio_comp, {{0, 1}}, std::move(cmp_bl), std::move(write_bl), - &mismatch_offset, mock_image_ctx.get_data_io_context(), 0, {}); + mock_image_ctx, aio_comp, {{0, 1}}, + 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 b902e0f959245..77d92db949b78 100644 --- a/src/test/librbd/journal/test_mock_Replay.cc +++ b/src/test/librbd/journal/test_mock_Replay.cc @@ -31,8 +31,8 @@ struct ImageRequest { MOCK_METHOD4(aio_write, void(AioCompletion *c, const Extents &image_extents, const bufferlist &bl, int op_flags)); static void aio_write(MockReplayImageCtx *ictx, AioCompletion *c, - Extents &&image_extents, bufferlist &&bl, - IOContext io_context, int op_flags, + Extents&& image_extents, + 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, 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); @@ -61,8 +60,8 @@ struct ImageRequest { const bufferlist &bl, int op_flags)); static void aio_writesame(MockReplayImageCtx *ictx, AioCompletion *c, - Extents&& image_extents, bufferlist &&bl, - IOContext io_context, int op_flags, + Extents&& image_extents, + 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); @@ -73,9 +72,9 @@ struct ImageRequest { uint64_t *mismatch_offset, int op_flags)); static void aio_compare_and_write(MockReplayImageCtx *ictx, AioCompletion *c, - Extents &&image_extents, bufferlist &&cmp_bl, - bufferlist &&bl, uint64_t *mismatch_offset, - IOContext io_context, int op_flags, + Extents&& image_extents, + bufferlist&& cmp_bl, bufferlist&& bl, + 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 02dff3487b6a9..f9552bebeffc2 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;