diff mbox series

[v4,03/11] rbd: Close image in qemu_rbd_open() error path

Message ID 20181019163013.11787-4-kwolf@redhat.com (mailing list archive)
State New, archived
Headers show
Series block: Add auto-read-only option | expand

Commit Message

Kevin Wolf Oct. 19, 2018, 4:30 p.m. UTC
Commit e2b8247a322 introduced an error path in qemu_rbd_open() after
calling rbd_open(), but neglected to close the image again in this error
path. The error path should contain everything that the regular close
function qemu_rbd_close() contains.

This adds the missing rbd_close() call.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 block/rbd.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Eric Blake Oct. 19, 2018, 6:14 p.m. UTC | #1
On 10/19/18 11:30 AM, Kevin Wolf wrote:
> Commit e2b8247a322 introduced an error path in qemu_rbd_open() after
> calling rbd_open(), but neglected to close the image again in this error
> path. The error path should contain everything that the regular close
> function qemu_rbd_close() contains.
> 
> This adds the missing rbd_close() call.
> 
> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
> ---
>   block/rbd.c | 1 +
>   1 file changed, 1 insertion(+)
> 

Reviewed-by: Eric Blake <eblake@redhat.com>

> diff --git a/block/rbd.c b/block/rbd.c
> index 014c68d629..27c9a1e81c 100644
> --- a/block/rbd.c
> +++ b/block/rbd.c
> @@ -787,6 +787,7 @@ static int qemu_rbd_open(BlockDriverState *bs, QDict *options, int flags,
>                            "automatically marking the image read-only.");
>               r = bdrv_set_read_only(bs, true, &local_err);
>               if (r < 0) {
> +                rbd_close(s->image);
>                   error_propagate(errp, local_err);
>                   goto failed_open;
>               }
>
diff mbox series

Patch

diff --git a/block/rbd.c b/block/rbd.c
index 014c68d629..27c9a1e81c 100644
--- a/block/rbd.c
+++ b/block/rbd.c
@@ -787,6 +787,7 @@  static int qemu_rbd_open(BlockDriverState *bs, QDict *options, int flags,
                          "automatically marking the image read-only.");
             r = bdrv_set_read_only(bs, true, &local_err);
             if (r < 0) {
+                rbd_close(s->image);
                 error_propagate(errp, local_err);
                 goto failed_open;
             }