diff options
author | Markus Armbruster <armbru@redhat.com> | 2020-11-13 09:26:19 +0100 |
---|---|---|
committer | Markus Armbruster <armbru@redhat.com> | 2020-12-10 17:16:44 +0100 |
commit | b0d7be2a62eecade217fa45521be18149346eaa1 (patch) | |
tree | eea6331310809abddde129c74302f80d201b47ac /blockdev.c | |
parent | f820af87433af84c13cd260807b59bbce47e2f0a (diff) |
block: Improve some block-commit, block-stream error messages
block-commit defaults @base-node to the deepest backing image. When
there is none, it fails with "Base 'NULL' not found". Improve to
"There is no backing image".
block-commit and block-stream reject a @base argument that doesn't
resolve with "Base 'BASE' not found". Commit 6b33f3ae8b "qemu-img:
Improve commit invalid base message" improved this message in
qemu-img. Improve it here, too: "Can't find '%s' in the backing
chain".
QERR_BASE_NOT_FOUND is now unused. Drop.
Cc: Kevin Wolf <kwolf@redhat.com>
Cc: Max Reitz <mreitz@redhat.com>
Cc: qemu-block@nongnu.org
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20201113082626.2725812-4-armbru@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Diffstat (limited to 'blockdev.c')
-rw-r--r-- | blockdev.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/blockdev.c b/blockdev.c index fe6fb5dc1d..d05a8740f4 100644 --- a/blockdev.c +++ b/blockdev.c @@ -2531,7 +2531,7 @@ void qmp_block_stream(bool has_job_id, const char *job_id, const char *device, if (has_base) { base_bs = bdrv_find_backing_image(bs, base); if (base_bs == NULL) { - error_setg(errp, QERR_BASE_NOT_FOUND, base); + error_setg(errp, "Can't find '%s' in the backing chain", base); goto out; } assert(bdrv_get_aio_context(base_bs) == aio_context); @@ -2703,13 +2703,16 @@ void qmp_block_commit(bool has_job_id, const char *job_id, const char *device, } } else if (has_base && base) { base_bs = bdrv_find_backing_image(top_bs, base); + if (base_bs == NULL) { + error_setg(errp, "Can't find '%s' in the backing chain", base); + goto out; + } } else { base_bs = bdrv_find_base(top_bs); - } - - if (base_bs == NULL) { - error_setg(errp, QERR_BASE_NOT_FOUND, base ? base : "NULL"); - goto out; + if (base_bs == NULL) { + error_setg(errp, "There is no backimg image"); + goto out; + } } assert(bdrv_get_aio_context(base_bs) == aio_context); |