Blame SOURCES/kvm-block-Open-backing-image-in-force-share-mode-for-siz.patch

9bac43
From 20103e6ef28af483bb8aa54b1272fbd480b61aa4 Mon Sep 17 00:00:00 2001
9bac43
From: Fam Zheng <famz@redhat.com>
9bac43
Date: Mon, 15 Jan 2018 06:15:18 +0100
9bac43
Subject: [PATCH 08/12] block: Open backing image in force share mode for size
9bac43
 probe
9bac43
9bac43
RH-Author: Fam Zheng <famz@redhat.com>
9bac43
Message-id: <20180115061518.16303-1-famz@redhat.com>
9bac43
Patchwork-id: 78570
9bac43
O-Subject: [RHV7.5 qemu-kvm-rhev PATCH] block: Open backing image in force share mode for size probe
9bac43
Bugzilla: 1526212
9bac43
RH-Acked-by: Kevin Wolf <kwolf@redhat.com>
9bac43
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
9bac43
RH-Acked-by: John Snow <jsnow@redhat.com>
9bac43
9bac43
Management tools create overlays of running guests with qemu-img:
9bac43
9bac43
  $ qemu-img create -b /image/in/use.qcow2 -f qcow2 /overlay/image.qcow2
9bac43
9bac43
but this doesn't work anymore due to image locking:
9bac43
9bac43
    qemu-img: /overlay/image.qcow2: Failed to get shared "write" lock
9bac43
    Is another process using the image?
9bac43
    Could not open backing image to determine size.
9bac43
Use the force share option to allow this use case again.
9bac43
9bac43
Cc: qemu-stable@nongnu.org
9bac43
Signed-off-by: Fam Zheng <famz@redhat.com>
9bac43
Reviewed-by: Eric Blake <eblake@redhat.com>
9bac43
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
9bac43
(cherry picked from commit cc954f01e3c004aad081aa36736a17e842b80211)
9bac43
Signed-off-by: Fam Zheng <famz@redhat.com>
9bac43
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
9bac43
---
9bac43
 block.c | 3 ++-
9bac43
 1 file changed, 2 insertions(+), 1 deletion(-)
9bac43
9bac43
diff --git a/block.c b/block.c
9bac43
index b5736dd..17629ab 100644
9bac43
--- a/block.c
9bac43
+++ b/block.c
9bac43
@@ -4515,10 +4515,11 @@ void bdrv_img_create(const char *filename, const char *fmt,
9bac43
         back_flags = flags;
9bac43
         back_flags &= ~(BDRV_O_RDWR | BDRV_O_SNAPSHOT | BDRV_O_NO_BACKING);
9bac43
 
9bac43
+        backing_options = qdict_new();
9bac43
         if (backing_fmt) {
9bac43
-            backing_options = qdict_new();
9bac43
             qdict_put_str(backing_options, "driver", backing_fmt);
9bac43
         }
9bac43
+        qdict_put_bool(backing_options, BDRV_OPT_FORCE_SHARE, true);
9bac43
 
9bac43
         bs = bdrv_open(full_backing, NULL, backing_options, back_flags,
9bac43
                        &local_err);
9bac43
-- 
9bac43
1.8.3.1
9bac43