[RFC,6/8] raw: Implement raw_co_map_range
diff mbox series

Message ID 20180329110914.20888-7-famz@redhat.com
State New
Headers show
Series
  • [RFC,1/8] block: Introduce bdrv_co_map_range API
Related show

Commit Message

Fam Zheng March 29, 2018, 11:09 a.m. UTC
Because raw can be seen as a "passthrough" format, its implementation of
bdrv_co_map_range is exactly the same as bdrv_co_block_status. The
BDRV_REQ_ALLOCATE flag can be ignored because no metadata update is
necessary.

Signed-off-by: Fam Zheng <famz@redhat.com>
---
 block/raw-format.c | 9 +++++++++
 1 file changed, 9 insertions(+)

Patch
diff mbox series

diff --git a/block/raw-format.c b/block/raw-format.c
index a378547c99..95e81af22d 100644
--- a/block/raw-format.c
+++ b/block/raw-format.c
@@ -263,6 +263,14 @@  static int coroutine_fn raw_co_block_status(BlockDriverState *bs,
     return BDRV_BLOCK_RAW | BDRV_BLOCK_OFFSET_VALID;
 }
 
+static int coroutine_fn raw_co_map_range(BlockDriverState *bs, int64_t offset,
+                                         int64_t bytes, int64_t *pnum, int64_t *map,
+                                         BlockDriverState **file,
+                                         int flags)
+{
+    return raw_co_block_status(bs, true, offset, bytes, pnum, map, file);
+}
+
 static int coroutine_fn raw_co_pwrite_zeroes(BlockDriverState *bs,
                                              int64_t offset, int bytes,
                                              BdrvRequestFlags flags)
@@ -498,6 +506,7 @@  BlockDriver bdrv_raw = {
     .bdrv_co_pwrite_zeroes = &raw_co_pwrite_zeroes,
     .bdrv_co_pdiscard     = &raw_co_pdiscard,
     .bdrv_co_block_status = &raw_co_block_status,
+    .bdrv_co_map_range    = &raw_co_map_range,
     .bdrv_truncate        = &raw_truncate,
     .bdrv_getlength       = &raw_getlength,
     .has_variable_length  = true,