From b6c7f69b8044f9206aa982c2aba6466c49fd2bea Mon Sep 17 00:00:00 2001 From: Ilya Dryomov Date: Fri, 26 Jul 2024 16:54:31 +0200 Subject: [PATCH] librbd/migration: make FormatInterface::read() void again Now that NativeFormat is handled via dispatch, FormatInterface::read() can be void again for consistency with FormatInterface::list_snaps(). Signed-off-by: Ilya Dryomov --- src/librbd/migration/FormatInterface.h | 2 +- src/librbd/migration/ImageDispatch.cc | 7 ++-- src/librbd/migration/QCOWFormat.cc | 6 +-- src/librbd/migration/QCOWFormat.h | 2 +- src/librbd/migration/RawFormat.cc | 5 +-- src/librbd/migration/RawFormat.h | 2 +- .../librbd/migration/test_mock_QCOWFormat.cc | 40 +++++++++---------- .../librbd/migration/test_mock_RawFormat.cc | 4 +- 8 files changed, 33 insertions(+), 35 deletions(-) diff --git a/src/librbd/migration/FormatInterface.h b/src/librbd/migration/FormatInterface.h index d13521d1193da..27669dd51169a 100644 --- a/src/librbd/migration/FormatInterface.h +++ b/src/librbd/migration/FormatInterface.h @@ -35,7 +35,7 @@ struct FormatInterface { virtual void get_image_size(uint64_t snap_id, uint64_t* size, Context* on_finish) = 0; - virtual bool read(io::AioCompletion* aio_comp, uint64_t snap_id, + virtual void read(io::AioCompletion* aio_comp, uint64_t snap_id, io::Extents&& image_extents, io::ReadResult&& read_result, int op_flags, int read_flags, const ZTracer::Trace &parent_trace) = 0; diff --git a/src/librbd/migration/ImageDispatch.cc b/src/librbd/migration/ImageDispatch.cc index f5b90066c6888..20cc3cb07e7eb 100644 --- a/src/librbd/migration/ImageDispatch.cc +++ b/src/librbd/migration/ImageDispatch.cc @@ -50,9 +50,10 @@ bool ImageDispatch::read( } *dispatch_result = io::DISPATCH_RESULT_COMPLETE; - return m_format->read(aio_comp, io_context->get_read_snap(), - std::move(image_extents), std::move(read_result), - op_flags, read_flags, parent_trace); + m_format->read(aio_comp, io_context->get_read_snap(), + std::move(image_extents), std::move(read_result), + op_flags, read_flags, parent_trace); + return true; } template diff --git a/src/librbd/migration/QCOWFormat.cc b/src/librbd/migration/QCOWFormat.cc index 8ed00b155a3e6..ba5d7e4ee765d 100644 --- a/src/librbd/migration/QCOWFormat.cc +++ b/src/librbd/migration/QCOWFormat.cc @@ -1438,7 +1438,7 @@ void QCOWFormat::get_image_size(uint64_t snap_id, uint64_t* size, } template -bool QCOWFormat::read( +void QCOWFormat::read( io::AioCompletion* aio_comp, uint64_t snap_id, io::Extents&& image_extents, io::ReadResult&& read_result, int op_flags, int read_flags, const ZTracer::Trace &parent_trace) { @@ -1453,7 +1453,7 @@ bool QCOWFormat::read( auto snapshot_it = m_snapshots.find(snap_id); if (snapshot_it == m_snapshots.end()) { aio_comp->fail(-ENOENT); - return true; + return; } auto& snapshot = snapshot_it->second; @@ -1466,8 +1466,6 @@ bool QCOWFormat::read( auto read_request = new ReadRequest(this, aio_comp, l1_table, std::move(image_extents)); read_request->send(); - - return true; } template diff --git a/src/librbd/migration/QCOWFormat.h b/src/librbd/migration/QCOWFormat.h index 3b355628cd2cb..90164de208e0c 100644 --- a/src/librbd/migration/QCOWFormat.h +++ b/src/librbd/migration/QCOWFormat.h @@ -67,7 +67,7 @@ public: void get_image_size(uint64_t snap_id, uint64_t* size, Context* on_finish) override; - bool read(io::AioCompletion* aio_comp, uint64_t snap_id, + void read(io::AioCompletion* aio_comp, uint64_t snap_id, io::Extents&& image_extents, io::ReadResult&& read_result, int op_flags, int read_flags, const ZTracer::Trace &parent_trace) override; diff --git a/src/librbd/migration/RawFormat.cc b/src/librbd/migration/RawFormat.cc index 4d1f7158a03aa..5feeb50e5e36b 100644 --- a/src/librbd/migration/RawFormat.cc +++ b/src/librbd/migration/RawFormat.cc @@ -163,7 +163,7 @@ void RawFormat::get_image_size(uint64_t snap_id, uint64_t* size, } template -bool RawFormat::read( +void RawFormat::read( io::AioCompletion* aio_comp, uint64_t snap_id, io::Extents&& image_extents, io::ReadResult&& read_result, int op_flags, int read_flags, const ZTracer::Trace &parent_trace) { @@ -174,13 +174,12 @@ bool RawFormat::read( auto snapshot_it = m_snapshots.find(snap_id); if (snapshot_it == m_snapshots.end()) { aio_comp->fail(-ENOENT); - return true; + return; } snapshot_it->second->read(aio_comp, std::move(image_extents), std::move(read_result), op_flags, read_flags, parent_trace); - return true; } template diff --git a/src/librbd/migration/RawFormat.h b/src/librbd/migration/RawFormat.h index a20c0814f7469..6c3fed6185791 100644 --- a/src/librbd/migration/RawFormat.h +++ b/src/librbd/migration/RawFormat.h @@ -44,7 +44,7 @@ public: void get_image_size(uint64_t snap_id, uint64_t* size, Context* on_finish) override; - bool read(io::AioCompletion* aio_comp, uint64_t snap_id, + void read(io::AioCompletion* aio_comp, uint64_t snap_id, io::Extents&& image_extents, io::ReadResult&& read_result, int op_flags, int read_flags, const ZTracer::Trace &parent_trace) override; diff --git a/src/test/librbd/migration/test_mock_QCOWFormat.cc b/src/test/librbd/migration/test_mock_QCOWFormat.cc index 6e7225d22430c..7d2b9c41050fb 100644 --- a/src/test/librbd/migration/test_mock_QCOWFormat.cc +++ b/src/test/librbd/migration/test_mock_QCOWFormat.cc @@ -835,8 +835,8 @@ TEST_F(TestMockMigrationQCOWFormat, Read) { &ctx2, m_image_ctx, io::AIO_TYPE_READ); bufferlist bl; io::ReadResult read_result{&bl}; - ASSERT_TRUE(mock_qcow_format.read(aio_comp, CEPH_NOSNAP, {{65659, 123}}, - std::move(read_result), 0, 0, {})); + mock_qcow_format.read(aio_comp, CEPH_NOSNAP, {{65659, 123}}, + std::move(read_result), 0, 0, {}); ASSERT_EQ(123, ctx2.wait()); ASSERT_EQ(expect_bl, bl); @@ -870,8 +870,8 @@ TEST_F(TestMockMigrationQCOWFormat, ReadL1DNE) { &ctx2, m_image_ctx, io::AIO_TYPE_READ); bufferlist bl; io::ReadResult read_result{&bl}; - ASSERT_TRUE(mock_qcow_format.read(aio_comp, CEPH_NOSNAP, {{234, 123}}, - std::move(read_result), 0, 0, {})); + mock_qcow_format.read(aio_comp, CEPH_NOSNAP, {{234, 123}}, + std::move(read_result), 0, 0, {}); ASSERT_EQ(123, ctx2.wait()); bufferlist expect_bl; expect_bl.append_zero(123); @@ -910,8 +910,8 @@ TEST_F(TestMockMigrationQCOWFormat, ReadL2DNE) { &ctx2, m_image_ctx, io::AIO_TYPE_READ); bufferlist bl; io::ReadResult read_result{&bl}; - ASSERT_TRUE(mock_qcow_format.read(aio_comp, CEPH_NOSNAP, {{234, 123}}, - std::move(read_result), 0, 0, {})); + mock_qcow_format.read(aio_comp, CEPH_NOSNAP, {{234, 123}}, + std::move(read_result), 0, 0, {}); ASSERT_EQ(123, ctx2.wait()); bufferlist expect_bl; expect_bl.append_zero(123); @@ -950,8 +950,8 @@ TEST_F(TestMockMigrationQCOWFormat, ReadZero) { &ctx2, m_image_ctx, io::AIO_TYPE_READ); bufferlist bl; io::ReadResult read_result{&bl}; - ASSERT_TRUE(mock_qcow_format.read(aio_comp, CEPH_NOSNAP, {{65659, 123}}, - std::move(read_result), 0, 0, {})); + mock_qcow_format.read(aio_comp, CEPH_NOSNAP, {{65659, 123}}, + std::move(read_result), 0, 0, {}); ASSERT_EQ(123, ctx2.wait()); bufferlist expect_bl; expect_bl.append_zero(123); @@ -1004,8 +1004,8 @@ TEST_F(TestMockMigrationQCOWFormat, ReadSnap) { &ctx2, m_image_ctx, io::AIO_TYPE_READ); bufferlist bl; io::ReadResult read_result{&bl}; - ASSERT_TRUE(mock_qcow_format.read(aio_comp, 1, {{65659, 123}}, - std::move(read_result), 0, 0, {})); + mock_qcow_format.read(aio_comp, 1, {{65659, 123}}, + std::move(read_result), 0, 0, {}); ASSERT_EQ(123, ctx2.wait()); ASSERT_EQ(expect_bl, bl); @@ -1039,8 +1039,8 @@ TEST_F(TestMockMigrationQCOWFormat, ReadSnapDNE) { &ctx2, m_image_ctx, io::AIO_TYPE_READ); bufferlist bl; io::ReadResult read_result{&bl}; - ASSERT_TRUE(mock_qcow_format.read(aio_comp, 1, {{65659, 123}}, - std::move(read_result), 0, 0, {})); + mock_qcow_format.read(aio_comp, 1, {{65659, 123}}, + std::move(read_result), 0, 0, {}); ASSERT_EQ(-ENOENT, ctx2.wait()); C_SaferCond ctx3; @@ -1090,8 +1090,8 @@ TEST_F(TestMockMigrationQCOWFormat, ReadClusterCacheHit) { &ctx2, m_image_ctx, io::AIO_TYPE_READ); bufferlist bl1; io::ReadResult read_result1{&bl1}; - ASSERT_TRUE(mock_qcow_format.read(aio_comp1, CEPH_NOSNAP, {{65659, 123}}, - std::move(read_result1), 0, 0, {})); + mock_qcow_format.read(aio_comp1, CEPH_NOSNAP, {{65659, 123}}, + std::move(read_result1), 0, 0, {}); ASSERT_EQ(123, ctx2.wait()); ASSERT_EQ(expect_bl1, bl1); @@ -1100,8 +1100,8 @@ TEST_F(TestMockMigrationQCOWFormat, ReadClusterCacheHit) { &ctx3, m_image_ctx, io::AIO_TYPE_READ); bufferlist bl2; io::ReadResult read_result2{&bl2}; - ASSERT_TRUE(mock_qcow_format.read(aio_comp2, CEPH_NOSNAP, {{66016, 234}}, - std::move(read_result2), 0, 0, {})); + mock_qcow_format.read(aio_comp2, CEPH_NOSNAP, {{66016, 234}}, + std::move(read_result2), 0, 0, {}); ASSERT_EQ(234, ctx3.wait()); ASSERT_EQ(expect_bl2, bl2); @@ -1142,8 +1142,8 @@ TEST_F(TestMockMigrationQCOWFormat, ReadClusterError) { &ctx2, m_image_ctx, io::AIO_TYPE_READ); bufferlist bl; io::ReadResult read_result{&bl}; - ASSERT_TRUE(mock_qcow_format.read(aio_comp, CEPH_NOSNAP, {{65659, 123}}, - std::move(read_result), 0, 0, {})); + mock_qcow_format.read(aio_comp, CEPH_NOSNAP, {{65659, 123}}, + std::move(read_result), 0, 0, {}); ASSERT_EQ(-EIO, ctx2.wait()); C_SaferCond ctx3; @@ -1179,8 +1179,8 @@ TEST_F(TestMockMigrationQCOWFormat, ReadL2TableError) { &ctx2, m_image_ctx, io::AIO_TYPE_READ); bufferlist bl; io::ReadResult read_result{&bl}; - ASSERT_TRUE(mock_qcow_format.read(aio_comp, CEPH_NOSNAP, {{65659, 123}}, - std::move(read_result), 0, 0, {})); + mock_qcow_format.read(aio_comp, CEPH_NOSNAP, {{65659, 123}}, + std::move(read_result), 0, 0, {}); ASSERT_EQ(-EIO, ctx2.wait()); C_SaferCond ctx3; diff --git a/src/test/librbd/migration/test_mock_RawFormat.cc b/src/test/librbd/migration/test_mock_RawFormat.cc index 16627628b5564..761e205bd1ee3 100644 --- a/src/test/librbd/migration/test_mock_RawFormat.cc +++ b/src/test/librbd/migration/test_mock_RawFormat.cc @@ -336,8 +336,8 @@ TEST_F(TestMockMigrationRawFormat, Read) { &ctx2, m_image_ctx, io::AIO_TYPE_READ); bufferlist bl; io::ReadResult read_result{&bl}; - ASSERT_TRUE(mock_raw_format.read(aio_comp, CEPH_NOSNAP, {{123, 123}}, - std::move(read_result), 0, 0, {})); + mock_raw_format.read(aio_comp, CEPH_NOSNAP, {{123, 123}}, + std::move(read_result), 0, 0, {}); ASSERT_EQ(123, ctx2.wait()); ASSERT_EQ(expect_bl, bl); -- 2.39.5