From e467da7b92ca207f02d29f52583a1097440a83cc Mon Sep 17 00:00:00 2001 From: Kevin Wolf Date: Wed, 21 Sep 2016 14:56:09 +0200 Subject: [PATCH] block: Avoid printing NULL string in error messages Even for nodes that have a BlockBackend attached, bdrv_get_parent_name() can return NULL if the BB is anonymous (e.g. it belongs to a block job or a device that was created with a drive= option). Remove the information from the error message. The user probably knows already why the node is still in use. Signed-off-by: Kevin Wolf Reviewed-by: Eric Blake --- blockdev.c | 9 +++------ tests/qemu-iotests/085.out | 6 +++--- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/blockdev.c b/blockdev.c index 405145ae95..17c2671c5e 100644 --- a/blockdev.c +++ b/blockdev.c @@ -1803,8 +1803,7 @@ static void external_snapshot_prepare(BlkActionState *common, } if (bdrv_has_blk(state->new_bs)) { - error_setg(errp, "The snapshot is already in use by %s", - bdrv_get_parent_name(state->new_bs)); + error_setg(errp, "The snapshot is already in use"); return; } @@ -2532,8 +2531,7 @@ void qmp_x_blockdev_insert_medium(bool has_device, const char *device, } if (bdrv_has_blk(bs)) { - error_setg(errp, "Node '%s' is already in use by '%s'", node_name, - bdrv_get_parent_name(bs)); + error_setg(errp, "Node '%s' is already in use", node_name); return; } @@ -3941,8 +3939,7 @@ void qmp_x_blockdev_del(bool has_id, const char *id, return; } if (bdrv_has_blk(bs)) { - error_setg(errp, "Node %s is in use by %s", - node_name, bdrv_get_parent_name(bs)); + error_setg(errp, "Node %s is in use", node_name); return; } aio_context = bdrv_get_aio_context(bs); diff --git a/tests/qemu-iotests/085.out b/tests/qemu-iotests/085.out index 01c78d6894..08e4bb7218 100644 --- a/tests/qemu-iotests/085.out +++ b/tests/qemu-iotests/085.out @@ -68,9 +68,9 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 backing_file=TEST_DIR/ === Invalid command - snapshot node used as active layer === -{"error": {"class": "GenericError", "desc": "The snapshot is already in use by virtio0"}} -{"error": {"class": "GenericError", "desc": "The snapshot is already in use by virtio0"}} -{"error": {"class": "GenericError", "desc": "The snapshot is already in use by virtio1"}} +{"error": {"class": "GenericError", "desc": "The snapshot is already in use"}} +{"error": {"class": "GenericError", "desc": "The snapshot is already in use"}} +{"error": {"class": "GenericError", "desc": "The snapshot is already in use"}} === Invalid command - snapshot node used as backing hd ===