Commit 0d978913 authored by Fam Zheng's avatar Fam Zheng Committed by Stefan Hajnoczi
Browse files

blockdev-backup: Use bdrv_lookup_bs on target



This allows backing up to a BDS that has not been attached to any BB.

Signed-off-by: default avatarFam Zheng <famz@redhat.com>
Message-id: 1463969978-24970-2-git-send-email-famz@redhat.com
Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
parent 271b385e
Loading
Loading
Loading
Loading
+3 −10
Original line number Diff line number Diff line
@@ -3335,7 +3335,7 @@ void do_blockdev_backup(const char *device, const char *target,
                         BlockdevOnError on_target_error,
                         BlockJobTxn *txn, Error **errp)
{
    BlockBackend *blk, *target_blk;
    BlockBackend *blk;
    BlockDriverState *bs;
    BlockDriverState *target_bs;
    Error *local_err = NULL;
@@ -3366,17 +3366,10 @@ void do_blockdev_backup(const char *device, const char *target,
    }
    bs = blk_bs(blk);

    target_blk = blk_by_name(target);
    if (!target_blk) {
        error_setg(errp, "Device '%s' not found", target);
        goto out;
    }

    if (!blk_is_available(target_blk)) {
        error_setg(errp, "Device '%s' has no medium", target);
    target_bs = bdrv_lookup_bs(target, target, errp);
    if (!target_bs) {
        goto out;
    }
    target_bs = blk_bs(target_blk);

    bdrv_set_aio_context(target_bs, aio_context);
    backup_start(bs, target_bs, speed, sync, NULL, on_source_error,