Commit e467da7b authored by Kevin Wolf's avatar Kevin Wolf
Browse files

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=<node-name> option).

Remove the information from the error message. The user probably knows
already why the node is still in use.

Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
Reviewed-by: default avatarEric Blake <eblake@redhat.com>
parent 62acae8a
Loading
Loading
Loading
Loading
+3 −6
Original line number Diff line number Diff line
@@ -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);
+3 −3
Original line number Diff line number Diff line
@@ -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 ===