[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v7 07/10] block: Pass error in bdrv_snapshot_cre
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] [PATCH v7 07/10] block: Pass error in bdrv_snapshot_create |
Date: |
Thu, 12 Dec 2013 14:52:14 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.2 (gnu/linux) |
Fam Zheng <address@hidden> writes:
> This allows descent error information to be reported.
>
> Signed-off-by: Fam Zheng <address@hidden>
> ---
> block/snapshot.c | 5 +++--
> blockdev.c | 2 +-
> include/block/snapshot.h | 3 ++-
> qemu-img.c | 2 +-
> savevm.c | 2 +-
> 5 files changed, 8 insertions(+), 6 deletions(-)
>
> diff --git a/block/snapshot.c b/block/snapshot.c
> index 9047f8d..02cfb07 100644
> --- a/block/snapshot.c
> +++ b/block/snapshot.c
> @@ -157,7 +157,8 @@ int bdrv_can_snapshot(BlockDriverState *bs)
> }
>
> int bdrv_snapshot_create(BlockDriverState *bs,
> - QEMUSnapshotInfo *sn_info)
> + QEMUSnapshotInfo *sn_info,
> + Error **errp)
> {
> BlockDriver *drv = bs->drv;
> if (!drv) {
> @@ -167,7 +168,7 @@ int bdrv_snapshot_create(BlockDriverState *bs,
> return drv->bdrv_snapshot_create(bs, sn_info);
> }
> if (bs->file) {
> - return bdrv_snapshot_create(bs->file, sn_info);
> + return bdrv_snapshot_create(bs->file, sn_info, errp);
> }
> return -ENOTSUP;
> }
> diff --git a/blockdev.c b/blockdev.c
> index 369d8da..404159e 100644
> --- a/blockdev.c
> +++ b/blockdev.c
> @@ -1138,7 +1138,7 @@ static void
> internal_snapshot_prepare(BlkTransactionState *common,
> sn->date_nsec = tv.tv_usec * 1000;
> sn->vm_clock_nsec = qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL);
>
> - ret1 = bdrv_snapshot_create(bs, sn);
> + ret1 = bdrv_snapshot_create(bs, sn, errp);
> if (ret1 < 0) {
> error_setg_errno(errp, -ret1,
> "Failed to create snapshot '%s' on device '%s'",
I'm afraid this will fail the assertion in error_set_errno() as soon as
bdrv_snapshot_create() actually uses errp, and errp isn't null. Do you
defuse this time bomb later in your series?
[...]
- Re: [Qemu-devel] [PATCH v7 04/10] block: support dropping active in bdrv_drop_intermediate, (continued)
- [Qemu-devel] [PATCH v7 05/10] stream: Use bdrv_drop_intermediate and drop close_unused_images, Fam Zheng, 2013/12/12
- [Qemu-devel] [PATCH v7 06/10] block: Replace in_use with operation blocker, Fam Zheng, 2013/12/12
- [Qemu-devel] [PATCH v7 08/10] block: Add checks of blocker in block operations, Fam Zheng, 2013/12/12
- [Qemu-devel] [PATCH v7 07/10] block: Pass error in bdrv_snapshot_create, Fam Zheng, 2013/12/12
- Re: [Qemu-devel] [PATCH v7 07/10] block: Pass error in bdrv_snapshot_create,
Markus Armbruster <=
- [Qemu-devel] [PATCH v7 09/10] qmp: add command 'blockdev-backup', Fam Zheng, 2013/12/12
- [Qemu-devel] [PATCH v7 10/10] block: Allow backup on referenced named BlockDriverState, Fam Zheng, 2013/12/12
- Re: [Qemu-devel] [PATCH v7 00/10] Drop in_use from BlockDriverState and enable point-in-time snapshot exporting over NBD, Ian Main, 2013/12/12