[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 15/47] block: Remove a special case for protocols
From: |
Kevin Wolf |
Subject: |
[Qemu-devel] [PULL 15/47] block: Remove a special case for protocols |
Date: |
Fri, 27 Jun 2014 21:08:34 +0200 |
The only semantic change is that bs->open_flags gets BDRV_O_PROTOCOL set
now. This isn't useful, but it doesn't hurt either. The code that was
previously skipped by 'goto done' is automatically disabled because
protocol drivers don't support backing files (and if they did, this
would probably be a fix) and can't have snapshot_flags set.
Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
---
block.c | 18 ++----------------
1 file changed, 2 insertions(+), 16 deletions(-)
diff --git a/block.c b/block.c
index 2c3c760..7d69f31 100644
--- a/block.c
+++ b/block.c
@@ -831,7 +831,7 @@ static int bdrv_open_flags(BlockDriverState *bs, int flags)
* Clear flags that are internal to the block layer before opening the
* image.
*/
- open_flags &= ~(BDRV_O_SNAPSHOT | BDRV_O_NO_BACKING);
+ open_flags &= ~(BDRV_O_SNAPSHOT | BDRV_O_NO_BACKING | BDRV_O_PROTOCOL);
/*
* Snapshots should be writable.
@@ -928,6 +928,7 @@ static int bdrv_open_common(BlockDriverState *bs,
BlockDriverState *file,
bs->zero_beyond_eof = true;
open_flags = bdrv_open_flags(bs, flags);
bs->read_only = !(open_flags & BDRV_O_RDWR);
+ bs->growable = !!(flags & BDRV_O_PROTOCOL);
if (use_bdrv_whitelist && !bdrv_is_whitelisted(drv, bs->read_only)) {
error_setg(errp,
@@ -1466,19 +1467,6 @@ int bdrv_open(BlockDriverState **pbs, const char
*filename,
}
/* Open the image */
- if (flags & BDRV_O_PROTOCOL) {
- ret = bdrv_open_common(bs, NULL, options,
- flags & ~BDRV_O_PROTOCOL, drv, &local_err);
- if (!ret) {
- bs->growable = 1;
- goto done;
- } else if (bs->drv) {
- goto close_and_fail;
- } else {
- goto fail;
- }
- }
-
ret = bdrv_open_common(bs, file, options, flags, drv, &local_err);
if (ret < 0) {
goto fail;
@@ -1510,8 +1498,6 @@ int bdrv_open(BlockDriverState **pbs, const char
*filename,
}
}
-
-done:
/* Check if any unknown options were used */
if (options && (qdict_size(options) != 0)) {
const QDictEntry *entry = qdict_first(options);
--
1.8.3.1
- [Qemu-devel] [PULL 07/47] block: Create bdrv_fill_options(), (continued)
- [Qemu-devel] [PULL 07/47] block: Create bdrv_fill_options(), Kevin Wolf, 2014/06/27
- [Qemu-devel] [PULL 09/47] block: Move json: parsing to bdrv_fill_options(), Kevin Wolf, 2014/06/27
- [Qemu-devel] [PULL 11/47] block: Use common driver selection code for bdrv_open_file(), Kevin Wolf, 2014/06/27
- [Qemu-devel] [PULL 12/47] block: Inline bdrv_file_open(), Kevin Wolf, 2014/06/27
- [Qemu-devel] [PULL 10/47] block: Always pass driver name through options QDict, Kevin Wolf, 2014/06/27
- [Qemu-devel] [PULL 13/47] block: Remove second bdrv_open() recursion, Kevin Wolf, 2014/06/27
- [Qemu-devel] [PULL 14/47] block: Catch backing files assigned to non-COW drivers, Kevin Wolf, 2014/06/27
- [Qemu-devel] [PULL 18/47] block: add qemu-iotest for resize base during live commit, Kevin Wolf, 2014/06/27
- [Qemu-devel] [PULL 16/47] qemu_opts_append: Play nicely with QemuOptsList's head, Kevin Wolf, 2014/06/27
- [Qemu-devel] [PULL 17/47] block: check for RESIZE blocker in the QMP command, not bdrv_truncate(), Kevin Wolf, 2014/06/27
- [Qemu-devel] [PULL 15/47] block: Remove a special case for protocols,
Kevin Wolf <=
- [Qemu-devel] [PULL 19/47] quorum: Add the rewrite-corrupted parameter to quorum, Kevin Wolf, 2014/06/27
- [Qemu-devel] [PULL 20/47] block: Add node-name argument to drive-mirror, Kevin Wolf, 2014/06/27
- [Qemu-devel] [PULL 22/47] virtio-blk: Convert VirtIOBlockReq.elem to pointer, Kevin Wolf, 2014/06/27
- [Qemu-devel] [PULL 23/47] virtio-blk: Drop bounce buffer from dataplane code, Kevin Wolf, 2014/06/27
- [Qemu-devel] [PULL 24/47] virtio-blk: Drop VirtIOBlockRequest.read, Kevin Wolf, 2014/06/27
- [Qemu-devel] [PULL 25/47] virtio-blk: Replace VirtIOBlockRequest with VirtIOBlockReq, Kevin Wolf, 2014/06/27
- [Qemu-devel] [PULL 26/47] virtio-blk: Use VirtIOBlockReq.in to drop VirtIOBlockReq.inhdr, Kevin Wolf, 2014/06/27
- [Qemu-devel] [PULL 30/47] block: make bdrv_query_stats() static, Kevin Wolf, 2014/06/27
- [Qemu-devel] [PULL 31/47] block: acquire AioContext in qmp_query_blockstats(), Kevin Wolf, 2014/06/27
- [Qemu-devel] [PULL 32/47] virtio-blk: Make request completion function virtual, Kevin Wolf, 2014/06/27