From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56534) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a1A4I-00016R-Tc for qemu-devel@nongnu.org; Tue, 24 Nov 2015 04:39:28 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1a1A4H-0001zV-OK for qemu-devel@nongnu.org; Tue, 24 Nov 2015 04:39:22 -0500 References: <1448294400-476-1-git-send-email-kwolf@redhat.com> <1448294400-476-15-git-send-email-kwolf@redhat.com> From: Wen Congyang Message-ID: <56542FE9.8090704@cn.fujitsu.com> Date: Tue, 24 Nov 2015 17:37:45 +0800 MIME-Version: 1.0 In-Reply-To: <1448294400-476-15-git-send-email-kwolf@redhat.com> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2 14/21] blockdev: Set 'format' indicates non-empty drive List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Kevin Wolf , qemu-block@nongnu.org Cc: qemu-devel@nongnu.org, mreitz@redhat.com On 11/23/2015 11:59 PM, Kevin Wolf wrote: > Creating an empty drive while specifying 'format' doesn't make sense. > The specified format driver would simply be ignored. > > Make a set 'format' option an indication that a non-empty drive should > be created. This makes 'format' consistent with 'driver' and allows > using it with a block driver that doesn't need any other options (like > null-co/null-aio). After this patch, make check will fail: GTESTER check-qtest-x86_64 blkdebug: Suspended request 'A' blkdebug: Resuming request 'A' qemu-system-x86_64: -drive id=drive0,if=ide,format=raw,index=0,media=cdrom: Can't use 'raw' as a block driver for the protocol level Broken pipe GTester: last random seed: R02S30363735a5ceb1b5e3967086fe0faf60 qemu-system-x86_64: -drive id=drive2,if=ide,format=raw,index=2,media=cdrom: Can't use 'raw' as a block driver for the protocol level Broken pipe GTester: last random seed: R02S900c9c9fe15d4866eeedf04b9c3e15eb qemu-system-x86_64: -drive id=drive2,if=ide,format=raw,index=2,media=cdrom: Can't use 'raw' as a block driver for the protocol level Broken pipe GTester: last random seed: R02S7b91f40b4832e7a8dc58090ab2316d3e qemu-system-x86_64: -drive id=drive2,if=ide,format=raw,index=2,media=cdrom: Can't use 'raw' as a block driver for the protocol level Broken pipe GTester: last random seed: R02S554ea2416720809b0b192625a0a03d4e qemu-system-x86_64: -drive id=drive2,if=none,format=raw,media=cdrom: Can't use 'raw' as a block driver for the protocol level Broken pipe GTester: last random seed: R02Sc0a31724f0aee48215f32c39093bfc70 qemu-system-x86_64: -drive id=drive2,if=none,format=raw,media=cdrom: Can't use 'raw' as a block driver for the protocol level Broken pipe GTester: last random seed: R02S090ae3723fe809a4ee5a077b620fed12 qemu-system-x86_64: -drive id=drive2,if=none,format=raw,media=cdrom: Can't use 'raw' as a block driver for the protocol level Broken pipe GTester: last random seed: R02Sf378037d36c71e1666ee8547dbf276f3 Thanks Wen Congyang > > Signed-off-by: Kevin Wolf > --- > blockdev.c | 5 +---- > tests/qemu-iotests/iotests.py | 2 +- > 2 files changed, 2 insertions(+), 5 deletions(-) > > diff --git a/blockdev.c b/blockdev.c > index 313841b..afaeef9 100644 > --- a/blockdev.c > +++ b/blockdev.c > @@ -490,7 +490,6 @@ static BlockBackend *blockdev_init(const char *file, QDict *bs_opts, > QDict *interval_dict = NULL; > QList *interval_list = NULL; > const char *id; > - bool has_driver_specific_opts; > BlockdevDetectZeroesOptions detect_zeroes = > BLOCKDEV_DETECT_ZEROES_OPTIONS_OFF; > const char *throttling_group = NULL; > @@ -514,8 +513,6 @@ static BlockBackend *blockdev_init(const char *file, QDict *bs_opts, > qdict_del(bs_opts, "id"); > } > > - has_driver_specific_opts = !!qdict_size(bs_opts); > - > /* extract parameters */ > snapshot = qemu_opt_get_bool(opts, "snapshot", 0); > > @@ -578,7 +575,7 @@ static BlockBackend *blockdev_init(const char *file, QDict *bs_opts, > } > > /* init */ > - if ((!file || !*file) && !has_driver_specific_opts) { > + if ((!file || !*file) && !qdict_size(bs_opts)) { > BlockBackendRootState *blk_rs; > > blk = blk_new(qemu_opts_id(opts), errp); > diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py > index ff5905f..f36add8 100644 > --- a/tests/qemu-iotests/iotests.py > +++ b/tests/qemu-iotests/iotests.py > @@ -143,12 +143,12 @@ class VM(object): > def add_drive(self, path, opts='', interface='virtio'): > '''Add a virtio-blk drive to the VM''' > options = ['if=%s' % interface, > - 'format=%s' % imgfmt, > 'cache=%s' % cachemode, > 'id=drive%d' % self._num_drives] > > if path is not None: > options.append('file=%s' % path) > + options.append('format=%s' % imgfmt) > > if opts: > options.append(opts) > -- This message has been scanned for viruses and dangerous content by Fujitsu, and is believed to be clean.