From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48319) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bAHxo-0002yA-37 for qemu-devel@nongnu.org; Tue, 07 Jun 2016 10:26:41 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bAHxi-0006ZB-0y for qemu-devel@nongnu.org; Tue, 07 Jun 2016 10:26:40 -0400 Received: from mx1.redhat.com ([209.132.183.28]:45699) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bAHxh-0006Z6-R3 for qemu-devel@nongnu.org; Tue, 07 Jun 2016 10:26:33 -0400 From: Stefan Hajnoczi Date: Tue, 7 Jun 2016 15:26:15 +0100 Message-Id: <1465309585-31551-3-git-send-email-stefanha@redhat.com> In-Reply-To: <1465309585-31551-1-git-send-email-stefanha@redhat.com> References: <1465309585-31551-1-git-send-email-stefanha@redhat.com> Subject: [Qemu-devel] [PULL 02/12] blockdev-backup: Use bdrv_lookup_bs on target List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Peter Maydell , Fam Zheng , Stefan Hajnoczi From: Fam Zheng This allows backing up to a BDS that has not been attached to any BB. Signed-off-by: Fam Zheng Message-id: 1463969978-24970-2-git-send-email-famz@redhat.com Signed-off-by: Stefan Hajnoczi --- blockdev.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/blockdev.c b/blockdev.c index 717785e..ea7f397 100644 --- a/blockdev.c +++ b/blockdev.c @@ -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,18 +3366,11 @@ 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); + target_bs = bdrv_lookup_bs(target, target, errp); + if (!target_bs) { goto out; } - if (!blk_is_available(target_blk)) { - error_setg(errp, "Device '%s' has no medium", target); - 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, on_target_error, block_job_cb, bs, txn, &local_err); -- 2.5.5