Skip to content

Commit

Permalink
block: Remove a special case for protocols
Browse files Browse the repository at this point in the history
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 <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
  • Loading branch information
kevmw committed Jun 26, 2014
1 parent 8ee79e7 commit 20cca27
Showing 1 changed file with 2 additions and 16 deletions.
18 changes: 2 additions & 16 deletions block.c
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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);
Expand Down

0 comments on commit 20cca27

Please sign in to comment.