qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Kevin Wolf <kwolf@redhat.com>
To: qemu-devel@nongnu.org
Cc: kwolf@redhat.com
Subject: [Qemu-devel] [PULL 29/54] block: do not abuse EMEDIUMTYPE
Date: Fri, 21 Feb 2014 23:12:26 +0100	[thread overview]
Message-ID: <1393020771-32712-30-git-send-email-kwolf@redhat.com> (raw)
In-Reply-To: <1393020771-32712-1-git-send-email-kwolf@redhat.com>

From: Paolo Bonzini <pbonzini@redhat.com>

Returning "Wrong medium type" for an image that does not have a valid
header is a bit weird.  Improve the error by mentioning what format
was trying to open it.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Fam Zheng <famz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 block/bochs.c     | 3 ++-
 block/cow.c       | 3 ++-
 block/parallels.c | 3 ++-
 block/qcow.c      | 3 ++-
 block/qcow2.c     | 2 +-
 block/qed.c       | 3 ++-
 block/vdi.c       | 4 ++--
 block/vmdk.c      | 6 ++++--
 block/vpc.c       | 3 ++-
 9 files changed, 19 insertions(+), 11 deletions(-)

diff --git a/block/bochs.c b/block/bochs.c
index 51d9a90..4d6403f 100644
--- a/block/bochs.c
+++ b/block/bochs.c
@@ -129,7 +129,8 @@ static int bochs_open(BlockDriverState *bs, QDict *options, int flags,
         strcmp(bochs.subtype, GROWING_TYPE) ||
 	((le32_to_cpu(bochs.version) != HEADER_VERSION) &&
 	(le32_to_cpu(bochs.version) != HEADER_V1))) {
-        return -EMEDIUMTYPE;
+        error_setg(errp, "Image not in Bochs format");
+        return -EINVAL;
     }
 
     if (le32_to_cpu(bochs.version) == HEADER_V1) {
diff --git a/block/cow.c b/block/cow.c
index 9e4f624..30deb88 100644
--- a/block/cow.c
+++ b/block/cow.c
@@ -74,7 +74,8 @@ static int cow_open(BlockDriverState *bs, QDict *options, int flags,
     }
 
     if (be32_to_cpu(cow_header.magic) != COW_MAGIC) {
-        ret = -EMEDIUMTYPE;
+        error_setg(errp, "Image not in COW format");
+        ret = -EINVAL;
         goto fail;
     }
 
diff --git a/block/parallels.c b/block/parallels.c
index 2121e43..3f588f5 100644
--- a/block/parallels.c
+++ b/block/parallels.c
@@ -85,7 +85,8 @@ static int parallels_open(BlockDriverState *bs, QDict *options, int flags,
 
     if (memcmp(ph.magic, HEADER_MAGIC, 16) ||
         (le32_to_cpu(ph.version) != HEADER_VERSION)) {
-        ret = -EMEDIUMTYPE;
+        error_setg(errp, "Image not in Parallels format");
+        ret = -EINVAL;
         goto fail;
     }
 
diff --git a/block/qcow.c b/block/qcow.c
index ef8920b..1e128be 100644
--- a/block/qcow.c
+++ b/block/qcow.c
@@ -113,7 +113,8 @@ static int qcow_open(BlockDriverState *bs, QDict *options, int flags,
     be64_to_cpus(&header.l1_table_offset);
 
     if (header.magic != QCOW_MAGIC) {
-        ret = -EMEDIUMTYPE;
+        error_setg(errp, "Image not in qcow format");
+        ret = -EINVAL;
         goto fail;
     }
     if (header.version != QCOW_VERSION) {
diff --git a/block/qcow2.c b/block/qcow2.c
index 9dfd908..cfe80be 100644
--- a/block/qcow2.c
+++ b/block/qcow2.c
@@ -449,7 +449,7 @@ static int qcow2_open(BlockDriverState *bs, QDict *options, int flags,
 
     if (header.magic != QCOW_MAGIC) {
         error_setg(errp, "Image is not in qcow2 format");
-        ret = -EMEDIUMTYPE;
+        ret = -EINVAL;
         goto fail;
     }
     if (header.version < 2 || header.version > 3) {
diff --git a/block/qed.c b/block/qed.c
index 968028e..8802ad3 100644
--- a/block/qed.c
+++ b/block/qed.c
@@ -391,7 +391,8 @@ static int bdrv_qed_open(BlockDriverState *bs, QDict *options, int flags,
     qed_header_le_to_cpu(&le_header, &s->header);
 
     if (s->header.magic != QED_MAGIC) {
-        return -EMEDIUMTYPE;
+        error_setg(errp, "Image not in QED format");
+        return -EINVAL;
     }
     if (s->header.features & ~QED_FEATURE_MASK) {
         /* image uses unsupported feature bits */
diff --git a/block/vdi.c b/block/vdi.c
index 2d7490f..f3c6acf 100644
--- a/block/vdi.c
+++ b/block/vdi.c
@@ -395,8 +395,8 @@ static int vdi_open(BlockDriverState *bs, QDict *options, int flags,
     }
 
     if (header.signature != VDI_SIGNATURE) {
-        logout("bad vdi signature %08x\n", header.signature);
-        ret = -EMEDIUMTYPE;
+        error_setg(errp, "Image not in VDI format (bad signature %08x)", header.signature);
+        ret = -EINVAL;
         goto fail;
     } else if (header.version != VDI_VERSION_1_1) {
         logout("unsupported version %u.%u\n",
diff --git a/block/vmdk.c b/block/vmdk.c
index 9c3711c..83839f9 100644
--- a/block/vmdk.c
+++ b/block/vmdk.c
@@ -748,7 +748,8 @@ static int vmdk_open_sparse(BlockDriverState *bs,
             return vmdk_open_vmdk4(bs, file, flags, errp);
             break;
         default:
-            return -EMEDIUMTYPE;
+            error_setg(errp, "Image not in VMDK format");
+            return -EINVAL;
             break;
     }
 }
@@ -862,7 +863,8 @@ static int vmdk_open_desc_file(BlockDriverState *bs, int flags, char *buf,
     BDRVVmdkState *s = bs->opaque;
 
     if (vmdk_parse_description(buf, "createType", ct, sizeof(ct))) {
-        ret = -EMEDIUMTYPE;
+        error_setg(errp, "invalid VMDK image descriptor");
+        ret = -EINVAL;
         goto exit;
     }
     if (strcmp(ct, "monolithicFlat") &&
diff --git a/block/vpc.c b/block/vpc.c
index 1d326cb..82bf248 100644
--- a/block/vpc.c
+++ b/block/vpc.c
@@ -190,7 +190,8 @@ static int vpc_open(BlockDriverState *bs, QDict *options, int flags,
             goto fail;
         }
         if (strncmp(footer->creator, "conectix", 8)) {
-            ret = -EMEDIUMTYPE;
+            error_setg(errp, "invalid VPC image");
+            ret = -EINVAL;
             goto fail;
         }
         disk_type = VHD_FIXED;
-- 
1.8.1.4

  parent reply	other threads:[~2014-02-21 22:13 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-21 22:11 [Qemu-devel] [PULL 00/54] Block patches Kevin Wolf
2014-02-21 22:11 ` [Qemu-devel] [PULL 01/54] qcow2: Set zero flag for discarded clusters Kevin Wolf
2014-02-22  0:01   ` Eric Blake
2014-02-24  9:46     ` Kevin Wolf
2014-02-21 22:11 ` [Qemu-devel] [PULL 02/54] block: Fix bdrv_is_first_non_filter() Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 03/54] block: Change BDS parameter of bdrv_open() to ** Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 04/54] block: Add reference parameter to bdrv_open() Kevin Wolf
2014-02-23  1:04   ` Fam Zheng
2014-02-21 22:12 ` [Qemu-devel] [PULL 05/54] block: Make bdrv_file_open() static Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 06/54] block: Reuse reference handling from bdrv_open() Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 07/54] block: Remove bdrv_new() from bdrv_file_open() Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 08/54] block: Handle bs->options in bdrv_open() only Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 09/54] block: Reuse success path from bdrv_open() Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 10/54] block: Remove bdrv_open_image()'s force_raw option Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 11/54] nbd: produce a better error if neither host nor port is passed Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 12/54] nbd: correctly propagate errors Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 13/54] nbd: inline tcp_socket_incoming_spec into sole caller Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 14/54] nbd: move socket wrappers to qemu-nbd Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 15/54] iscsi: fix indentation Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 16/54] iscsi: correctly propagate errors in iscsi_open Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 17/54] gluster: default scheme to gluster:// and host to localhost Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 18/54] gluster: correctly propagate errors Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 19/54] cow: " Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 20/54] curl: " Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 21/54] qcow: " Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 22/54] qed: " Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 23/54] vhdx: " Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 24/54] vvfat: " Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 25/54] vmdk: extract vmdk_read_desc Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 26/54] vmdk: push vmdk_read_desc up to caller Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 27/54] vmdk: do not try opening a file as both image and descriptor Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 28/54] vmdk: correctly propagate errors Kevin Wolf
2014-02-21 22:12 ` Kevin Wolf [this message]
2014-02-21 22:12 ` [Qemu-devel] [PULL 30/54] vdi: say why an image is bad Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 31/54] qemu-option: has_help_option() and is_valid_option_list() Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 32/54] qemu-img create: Support multiple -o options Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 33/54] qemu-img convert: " Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 34/54] qemu-img amend: " Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 35/54] qemu-img: Allow -o help with incomplete argument list Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 36/54] qemu-iotests: Check qemu-img command line parsing Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 37/54] qemu-config: Sections must consist of keys Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 38/54] qdict: Extract non-QDicts in qdict_array_split() Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 39/54] check-qdict: Adjust test for qdict_array_split() Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 40/54] check-qdict: Test termination of qdict_array_split() Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 41/54] quorum: Create quorum.c, add QuorumChildRequest and QuorumAIOCB Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 42/54] quorum: Create BDRVQuorumState and BlkDriver and do init Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 43/54] quorum: Add quorum_aio_writev and its dependencies Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 44/54] blkverify: Extract qemu_iovec_clone() and qemu_iovec_compare() from blkverify Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 45/54] quorum: Add quorum_aio_readv Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 46/54] quorum: Add quorum mechanism Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 47/54] quorum: Add quorum_getlength() Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 48/54] quorum: Add quorum_invalidate_cache() Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 49/54] quorum: Add quorum_co_flush() Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 50/54] quorum: Implement recursive .bdrv_recurse_is_first_non_filter in quorum Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 51/54] quorum: Add quorum_open() and quorum_close() Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 52/54] quorum: Add unit test Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 53/54] quorum: Simplify quorum_open() Kevin Wolf
2014-02-21 22:12 ` [Qemu-devel] [PULL 54/54] iotests: Mixed quorum child device specifications Kevin Wolf
2014-02-25 11:53 ` [Qemu-devel] [PULL 00/54] Block patches Peter Maydell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1393020771-32712-30-git-send-email-kwolf@redhat.com \
    --to=kwolf@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).