]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
librbd: pass image_extents to create_{discard,write_same}()
authorIlya Dryomov <idryomov@gmail.com>
Sun, 11 Sep 2022 10:10:27 +0000 (12:10 +0200)
committerIlya Dryomov <idryomov@gmail.com>
Sun, 4 Dec 2022 17:19:19 +0000 (18:19 +0100)
These are still taking off and len separately which is inconsistent
with the rest of ImageDispatchSpec and also ImageDiscardRequest and
ImageWriteSameRequest.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
src/librbd/api/Io.cc
src/librbd/cache/ImageWriteback.cc
src/librbd/io/ImageDispatchSpec.h

index 31b48b3f6b8d56b77167dfa8a6bb8e132b25595c..c83cdfb49c9274550f919f8daae0301647ae52d4 100644 (file)
@@ -294,7 +294,7 @@ void Io<I>::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,
+    image_ctx, io::IMAGE_DISPATCH_LAYER_API_START, aio_comp, {{off, len}},
     discard_granularity_bytes, image_ctx.get_data_io_context(), trace);
   req->send();
 }
@@ -326,7 +326,7 @@ void Io<I>::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,
+    image_ctx, io::IMAGE_DISPATCH_LAYER_API_START, aio_comp, {{off, len}},
     std::move(bl), image_ctx.get_data_io_context(), op_flags, trace);
   req->send();
 }
@@ -409,7 +409,7 @@ void Io<I>::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,
+        image_ctx, io::IMAGE_DISPATCH_LAYER_API_START, aio_comp, {{off, len}},
         std::move(bl), image_ctx.get_data_io_context(), op_flags, trace);
       req->send();
       return;
@@ -465,7 +465,7 @@ void Io<I>::aio_write_zeroes(I& image_ctx, io::AioCompletion *aio_comp,
       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),
+      {{write_same_offset, write_same_length}}, std::move(bl),
       image_ctx.get_data_io_context(), op_flags, trace);
     req->send();
     return;
@@ -475,7 +475,7 @@ void Io<I>::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,
+    image_ctx, io::IMAGE_DISPATCH_LAYER_API_START, aio_comp, {{off, len}},
     discard_granularity_bytes, image_ctx.get_data_io_context(), trace);
   req->send();
 }
index dcbba42ba9ef533d34c40acc4f0deeb325a583dd..88de61cda59858505b5317b1ef7ca9901036a6d0 100644 (file)
@@ -75,8 +75,8 @@ void ImageWriteback<I>::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, io::IMAGE_DISPATCH_LAYER_WRITEBACK_CACHE, aio_comp,
+    {{offset, length}}, discard_granularity_bytes,
     image_ctx->get_data_io_context(), trace);
   req->send();
 }
@@ -113,8 +113,8 @@ void ImageWriteback<I>::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), image_ctx->get_data_io_context(),
     fadvise_flags, trace);
   req->send();
 }
index ee95f21be63f75cfce67eb529afcddf8501220b5..e4018ebcdbe0c694e5227a34c43ac71b4f26eeed 100644 (file)
@@ -138,11 +138,12 @@ public:
   template <typename ImageCtxT = ImageCtx>
   static ImageDispatchSpec* create_discard(
       ImageCtxT &image_ctx, ImageDispatchLayer image_dispatch_layer,
-      AioCompletion *aio_comp, uint64_t off, uint64_t len,
+      AioCompletion *aio_comp, Extents &&image_extents,
       uint32_t discard_granularity_bytes, IOContext io_context,
       const ZTracer::Trace &parent_trace) {
     return new ImageDispatchSpec(image_ctx.io_image_dispatcher,
-                                 image_dispatch_layer, aio_comp, {{off, len}},
+                                 image_dispatch_layer, aio_comp,
+                                 std::move(image_extents),
                                  Discard{discard_granularity_bytes},
                                  io_context, 0, parent_trace);
   }
@@ -162,12 +163,13 @@ public:
   template <typename ImageCtxT = ImageCtx>
   static ImageDispatchSpec* create_write_same(
       ImageCtxT &image_ctx, ImageDispatchLayer image_dispatch_layer,
-      AioCompletion *aio_comp, uint64_t off, uint64_t len,
+      AioCompletion *aio_comp, Extents &&image_extents,
       bufferlist &&bl, IOContext io_context, 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)},
+                                 std::move(image_extents),
+                                 WriteSame{std::move(bl)},
                                  io_context, op_flags, parent_trace);
   }