From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41230) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cVdnB-0004Cx-HM for qemu-devel@nongnu.org; Mon, 23 Jan 2017 07:32:14 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cVdn8-0005vM-Do for qemu-devel@nongnu.org; Mon, 23 Jan 2017 07:32:13 -0500 From: Fam Zheng Date: Mon, 23 Jan 2017 20:30:44 +0800 Message-Id: <20170123123056.30383-5-famz@redhat.com> In-Reply-To: <20170123123056.30383-1-famz@redhat.com> References: <20170123123056.30383-1-famz@redhat.com> Subject: [Qemu-devel] [PATCH v12 04/16] qemu-img: Set "share-rw" flag in read-only commands List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: "Daniel P. Berrange" , qemu-block@nongnu.org, eblake@redhat.com, Kevin Wolf , rjones@redhat.com, Max Reitz Checking the status of an image when it is being used by guest is usually useful, and there is no risk of corrupting data, so don't let the upcoming image locking feature limit this use case. Signed-off-by: Fam Zheng --- qemu-img.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/qemu-img.c b/qemu-img.c index 5df66fe..6a091e0 100644 --- a/qemu-img.c +++ b/qemu-img.c @@ -705,6 +705,10 @@ static int img_check(int argc, char **argv) return 1; } + if (!(flags & BDRV_O_RDWR)) { + flags |= BDRV_O_SHARE_RW; + } + blk = img_open(image_opts, filename, fmt, flags, writethrough, quiet); if (!blk) { return 1; @@ -1238,6 +1242,7 @@ static int img_compare(int argc, char **argv) goto out3; } + flags |= BDRV_O_SHARE_RW; blk1 = img_open(image_opts, filename1, fmt1, flags, writethrough, quiet); if (!blk1) { ret = 2; @@ -2286,7 +2291,8 @@ static ImageInfoList *collect_image_info_list(bool image_opts, g_hash_table_insert(filenames, (gpointer)filename, NULL); blk = img_open(image_opts, filename, fmt, - BDRV_O_NO_BACKING | BDRV_O_NO_IO, false, false); + BDRV_O_NO_BACKING | BDRV_O_NO_IO | BDRV_O_SHARE_RW, + false, false); if (!blk) { goto err; } @@ -2612,7 +2618,7 @@ static int img_map(int argc, char **argv) return 1; } - blk = img_open(image_opts, filename, fmt, 0, false, false); + blk = img_open(image_opts, filename, fmt, BDRV_O_SHARE_RW, false, false); if (!blk) { return 1; } -- 2.9.3