]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
block: Use error code EMEDIUMTYPE for wrong format in some block drivers
authorStefan Weil <sw@weilnetz.de>
Thu, 17 Jan 2013 20:45:25 +0000 (21:45 +0100)
committerKevin Wolf <kwolf@redhat.com>
Fri, 25 Jan 2013 17:18:35 +0000 (18:18 +0100)
This improves error reports for bochs, cow, qcow, qcow2, qed and vmdk
when a file with the wrong format is selected.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
block/bochs.c
block/cow.c
block/qcow.c
block/qcow2.c
block/qed.c
block/vmdk.c

index 1b1d9cdbe53e191aa8a933b596b54f8ebeb6dc31..37375834e96cf7ffcaf30219592b227cdcc27757 100644 (file)
@@ -126,7 +126,7 @@ static int bochs_open(BlockDriverState *bs, int flags)
         strcmp(bochs.subtype, GROWING_TYPE) ||
        ((le32_to_cpu(bochs.version) != HEADER_VERSION) &&
        (le32_to_cpu(bochs.version) != HEADER_V1))) {
-        goto fail;
+        return -EMEDIUMTYPE;
     }
 
     if (le32_to_cpu(bochs.version) == HEADER_V1) {
index a33ce950d4439b2b94744bc3f1409c4a88bb61ed..4baf9042fe061b4494dcd23a8ea9d87092ac462f 100644 (file)
@@ -73,7 +73,7 @@ static int cow_open(BlockDriverState *bs, int flags)
     }
 
     if (be32_to_cpu(cow_header.magic) != COW_MAGIC) {
-        ret = -EINVAL;
+        ret = -EMEDIUMTYPE;
         goto fail;
     }
 
index 4276610afd9341fdbeabb18113da1eb3d04af084..a7135eea4790243bb85151d4fa59fa63282b0e88 100644 (file)
@@ -112,7 +112,7 @@ static int qcow_open(BlockDriverState *bs, int flags)
     be64_to_cpus(&header.l1_table_offset);
 
     if (header.magic != QCOW_MAGIC) {
-        ret = -EINVAL;
+        ret = -EMEDIUMTYPE;
         goto fail;
     }
     if (header.version != QCOW_VERSION) {
index f6abff6111e01785df486c0902bc03acd973861e..7610e569e39c9bc18e8fd273f85eff73fb4f146f 100644 (file)
@@ -311,7 +311,7 @@ static int qcow2_open(BlockDriverState *bs, int flags)
     be32_to_cpus(&header.nb_snapshots);
 
     if (header.magic != QCOW_MAGIC) {
-        ret = -EINVAL;
+        ret = -EMEDIUMTYPE;
         goto fail;
     }
     if (header.version < 2 || header.version > 3) {
index cf85d8f2b44b43edb416ba7433c679efe47f06a6..b8515e58b3ff7fa9ec8d8da19958784afb5d63a3 100644 (file)
@@ -390,7 +390,7 @@ static int bdrv_qed_open(BlockDriverState *bs, int flags)
     qed_header_le_to_cpu(&le_header, &s->header);
 
     if (s->header.magic != QED_MAGIC) {
-        return -EINVAL;
+        return -EMEDIUMTYPE;
     }
     if (s->header.features & ~QED_FEATURE_MASK) {
         /* image uses unsupported feature bits */
index 19298c2a3ed0cf7aaf6e69411b38d9abe210b4af..8333afb5e38f7b4e52dbce662fa09a3d8443983d 100644 (file)
@@ -616,7 +616,7 @@ static int vmdk_open_sparse(BlockDriverState *bs,
             return vmdk_open_vmdk4(bs, file, flags);
             break;
         default:
-            return -EINVAL;
+            return -EMEDIUMTYPE;
             break;
     }
 }
@@ -718,7 +718,7 @@ static int vmdk_open_desc_file(BlockDriverState *bs, int flags,
     }
     buf[2047] = '\0';
     if (vmdk_parse_description(buf, "createType", ct, sizeof(ct))) {
-        return -EINVAL;
+        return -EMEDIUMTYPE;
     }
     if (strcmp(ct, "monolithicFlat") &&
         strcmp(ct, "twoGbMaxExtentSparse") &&