[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC PATCH 4/5] block: Open the underlying image file
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] [RFC PATCH 4/5] block: Open the underlying image file in generic code |
Date: |
Thu, 15 Apr 2010 09:48:22 +0100 |
On Wed, Apr 14, 2010 at 4:50 PM, Kevin Wolf <address@hidden> wrote:
> diff --git a/block/qcow.c b/block/qcow.c
> index c619984..01b1692 100644
> --- a/block/qcow.c
> +++ b/block/qcow.c
[..]
> @@ -169,7 +166,7 @@ static int qcow_open(BlockDriverState *bs, const char
> *filename, int flags)
> qemu_free(s->l2_cache);
> qemu_free(s->cluster_cache);
> qemu_free(s->cluster_data);
> - bdrv_delete(s->hd);
> + bdrv_delete(bs->file);
> return -1;
> }
qcow.c does not need to delete bs->file anymore because block.c does
that when BlockDriver->bdrv_open() fails. Also since we're not
setting bs->file to NULL after bdrv_delete() here, block.c will double
delete it.
> @@ -739,7 +737,7 @@ static void qcow_close(BlockDriverState *bs)
> qemu_free(s->l2_cache);
> qemu_free(s->cluster_cache);
> qemu_free(s->cluster_data);
> - bdrv_delete(s->hd);
> + bdrv_delete(bs->file);
> }
>
> static int qcow_create(const char *filename, QEMUOptionParameter *options)
block.c will bdrv_close(bs->file) for us, so I think this is not
needed. Double delete.
> diff --git a/block/qcow2.c b/block/qcow2.c
> index 11ce8d1..4949d77 100644
> --- a/block/qcow2.c
> +++ b/block/qcow2.c
[...]
> @@ -254,7 +250,7 @@ static int qcow_open(BlockDriverState *bs, const char
> *filename, int flags)
> qemu_free(s->l2_cache);
> qemu_free(s->cluster_cache);
> qemu_free(s->cluster_data);
> - bdrv_delete(s->hd);
> + bdrv_delete(bs->file);
> return -1;
> }
Same as above.
> diff --git a/block/vdi.c b/block/vdi.c
> index c91961a..8b85339 100644
> --- a/block/vdi.c
> +++ b/block/vdi.c
[...]
> @@ -452,7 +446,7 @@ static int vdi_open(BlockDriverState *bs, const char
> *filename, int flags)
> qemu_free(s->bmap);
>
> fail:
> - bdrv_delete(s->hd);
> + bdrv_delete(bs->file);
> return -1;
> }
Same as above.
> diff --git a/block/vpc.c b/block/vpc.c
> index 950ad58..1d1ae09 100644
> --- a/block/vpc.c
> +++ b/block/vpc.c
[...]
> @@ -228,7 +224,7 @@ static int vpc_open(BlockDriverState *bs, const char
> *filename, int flags)
>
> return 0;
> fail:
> - bdrv_delete(s->hd);
> + bdrv_delete(bs->file);
> return -1;
> }
Same as above.
> @@ -590,7 +584,7 @@ static void vpc_close(BlockDriverState *bs)
> #ifdef CACHE
> qemu_free(s->pageentry_u8);
> #endif
> - bdrv_delete(s->hd);
> + bdrv_delete(bs->file);
> }
>
> static QEMUOptionParameter vpc_create_options[] = {
Same as above.
Stefan
- [Qemu-devel] [RFC PATCH 0/5] block: Format/protocol split, Kevin Wolf, 2010/04/14
- [Qemu-devel] [RFC PATCH 2/5] block: Split bdrv_open, Kevin Wolf, 2010/04/14
- [Qemu-devel] [RFC PATCH 3/5] block: Avoid forward declaration of bdrv_open_common, Kevin Wolf, 2010/04/14
- [Qemu-devel] [RFC PATCH 1/5] block: separate raw images from the file protocol, Kevin Wolf, 2010/04/14
- [Qemu-devel] [RFC PATCH 5/5] block: bdrv_has_zero_init, Kevin Wolf, 2010/04/14
- [Qemu-devel] [RFC PATCH 4/5] block: Open the underlying image file in generic code, Kevin Wolf, 2010/04/14
- Re: [Qemu-devel] [RFC PATCH 4/5] block: Open the underlying image file in generic code,
Stefan Hajnoczi <=