Blame SOURCES/kvm-block-backend-Add-blk_co_copy_range.patch

1bdc94
From 6f8e77a19dc072d428624f521e35a82a80893d25 Mon Sep 17 00:00:00 2001
1bdc94
From: Fam Zheng <famz@redhat.com>
1bdc94
Date: Fri, 29 Jun 2018 06:11:49 +0200
1bdc94
Subject: [PATCH 45/57] block-backend: Add blk_co_copy_range
1bdc94
1bdc94
RH-Author: Fam Zheng <famz@redhat.com>
1bdc94
Message-id: <20180629061153.12687-10-famz@redhat.com>
1bdc94
Patchwork-id: 81161
1bdc94
O-Subject: [RHEL-7.6 qemu-kvm-rhev PATCH v2 09/13] block-backend: Add blk_co_copy_range
1bdc94
Bugzilla: 1482537
1bdc94
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
1bdc94
RH-Acked-by: Max Reitz <mreitz@redhat.com>
1bdc94
RH-Acked-by: Kevin Wolf <kwolf@redhat.com>
1bdc94
1bdc94
It's a BlockBackend wrapper of the BDS interface.
1bdc94
1bdc94
Signed-off-by: Fam Zheng <famz@redhat.com>
1bdc94
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
1bdc94
Message-id: 20180601092648.24614-10-famz@redhat.com
1bdc94
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
1bdc94
(cherry picked from commit b5679fa49c9a70efa7bf01f6efad1a65e2349a0b)
1bdc94
Signed-off-by: Fam Zheng <famz@redhat.com>
1bdc94
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
1bdc94
---
1bdc94
 block/block-backend.c          | 18 ++++++++++++++++++
1bdc94
 include/sysemu/block-backend.h |  4 ++++
1bdc94
 2 files changed, 22 insertions(+)
1bdc94
1bdc94
diff --git a/block/block-backend.c b/block/block-backend.c
1bdc94
index fd342db..56ae535 100644
1bdc94
--- a/block/block-backend.c
1bdc94
+++ b/block/block-backend.c
1bdc94
@@ -2236,3 +2236,21 @@ void blk_unregister_buf(BlockBackend *blk, void *host)
1bdc94
 {
1bdc94
     bdrv_unregister_buf(blk_bs(blk), host);
1bdc94
 }
1bdc94
+
1bdc94
+int coroutine_fn blk_co_copy_range(BlockBackend *blk_in, int64_t off_in,
1bdc94
+                                   BlockBackend *blk_out, int64_t off_out,
1bdc94
+                                   int bytes, BdrvRequestFlags flags)
1bdc94
+{
1bdc94
+    int r;
1bdc94
+    r = blk_check_byte_request(blk_in, off_in, bytes);
1bdc94
+    if (r) {
1bdc94
+        return r;
1bdc94
+    }
1bdc94
+    r = blk_check_byte_request(blk_out, off_out, bytes);
1bdc94
+    if (r) {
1bdc94
+        return r;
1bdc94
+    }
1bdc94
+    return bdrv_co_copy_range(blk_in->root, off_in,
1bdc94
+                              blk_out->root, off_out,
1bdc94
+                              bytes, flags);
1bdc94
+}
1bdc94
diff --git a/include/sysemu/block-backend.h b/include/sysemu/block-backend.h
1bdc94
index 92ab624..8d03d49 100644
1bdc94
--- a/include/sysemu/block-backend.h
1bdc94
+++ b/include/sysemu/block-backend.h
1bdc94
@@ -232,4 +232,8 @@ void blk_set_force_allow_inactivate(BlockBackend *blk);
1bdc94
 void blk_register_buf(BlockBackend *blk, void *host, size_t size);
1bdc94
 void blk_unregister_buf(BlockBackend *blk, void *host);
1bdc94
 
1bdc94
+int coroutine_fn blk_co_copy_range(BlockBackend *blk_in, int64_t off_in,
1bdc94
+                                   BlockBackend *blk_out, int64_t off_out,
1bdc94
+                                   int bytes, BdrvRequestFlags flags);
1bdc94
+
1bdc94
 #endif
1bdc94
-- 
1bdc94
1.8.3.1
1bdc94