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: v17.2.7~248^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=a8572e1c68ce37a630e91b5bc13ab5ba5ca9ca5e;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 quincy ] src/librbd/cache/ImageWriteback.cc [ ditto ] src/librbd/io/ImageDispatchSpec.h [ ditto ] src/librbd/crypto/luks/FormatRequest.cc [ ImageArea support not in quincy ] 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 quincy ] --- diff --git a/src/librbd/api/Io.cc b/src/librbd/api/Io.cc index 31b48b3f6b8d..3ce8a02f4022 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 dcbba42ba9ef..631de0c36d39 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 6cb8738e7f9e..077d5484a0e1 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 9344916237ed..f68f37dc750c 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 dae3dac853b1..c7d25f16a147 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 be2452fd924c..9c10df61f60a 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 f53b3692a1b1..5939c7a81968 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 77c101973efe..c0d9d49f54c4 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 0c173dd2661f..3286618a4f24 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 3d302e9a62a0..4a89c605450e 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 64cea861286d..7e2ae7399600 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 ee95f21be63f..8771f5bc6eca 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 413218ad3b46..70518a8e6729 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 96be195c59a1..ea1d5dbb5fcd 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 885e2545ceaf..f5e08940a4b1 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 e80d39e44210..ea5ed63b4be5 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 60ee467502da..9a41927ba379 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 5199f01d85d8..3141faf2526f 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 1bcb3c312cf7..668dec4195a4 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 4439a15a797e..57d181d20e30 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 9d200fb97530..b1d0ddb0ed09 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 3aa2eeb0bcb0..1ae143d78615 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 03bb3aa52137..cd96141c0cc7 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 190aec028ff0..c1b21c4a2471 100644 --- a/src/test/librbd/io/test_mock_ImageRequest.cc +++ b/src/test/librbd/io/test_mock_ImageRequest.cc @@ -207,7 +207,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(); @@ -220,7 +220,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(); @@ -302,7 +302,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(); @@ -330,7 +330,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(); @@ -360,7 +360,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(); @@ -392,7 +392,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(); @@ -424,8 +424,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(); @@ -454,8 +455,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(); @@ -484,8 +485,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(); @@ -523,7 +524,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(); @@ -553,8 +554,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(); @@ -582,8 +582,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(); @@ -641,8 +641,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(); @@ -675,8 +674,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 b902e0f95924..77d92db949b7 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 02dff3487b6a..f9552bebeffc 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;