diff --git a/blockdev.c b/blockdev.c index eafeba96d08bdefe1736b8a77f0a221b154ab4af..21614004d1744200f42e727789b748a50c51ee2c 100644 --- a/blockdev.c +++ b/blockdev.c @@ -1937,7 +1937,8 @@ static void blockdev_backup_prepare(BlkActionState *common, Error **errp) { BlockdevBackupState *state = DO_UPCAST(BlockdevBackupState, common, common); BlockdevBackup *backup; - BlockBackend *blk, *target; + BlockBackend *blk; + BlockDriverState *target; Error *local_err = NULL; assert(common->action->type == TRANSACTION_ACTION_KIND_BLOCKDEV_BACKUP); @@ -1954,15 +1955,14 @@ static void blockdev_backup_prepare(BlkActionState *common, Error **errp) return; } - target = blk_by_name(backup->target); + target = bdrv_lookup_bs(backup->target, backup->target, errp); if (!target) { - error_setg(errp, "Device '%s' not found", backup->target); return; } /* AioContext is released in .clean() */ state->aio_context = blk_get_aio_context(blk); - if (state->aio_context != blk_get_aio_context(target)) { + if (state->aio_context != bdrv_get_aio_context(target)) { state->aio_context = NULL; error_setg(errp, "Backup between two IO threads is not implemented"); return; diff --git a/qapi/block-core.json b/qapi/block-core.json index 2bbc027311110993e136b9c696752107627ace02..5e2d7d78d2ed889971c1761916d20d14f3c70dcc 100644 --- a/qapi/block-core.json +++ b/qapi/block-core.json @@ -927,7 +927,7 @@ # # @device: the name of the device which should be copied. # -# @target: the name of the backup target device. +# @target: the device name or node-name of the backup target node. # # @sync: what parts of the disk image should be copied to the destination # (all the disk, only the sectors allocated in the topmost image, or