]> git.proxmox.com Git - mirror_qemu.git/commitdiff
bdrv: Use "Error" for creating images
authorMax Reitz <mreitz@redhat.com>
Thu, 5 Sep 2013 12:26:05 +0000 (14:26 +0200)
committerKevin Wolf <kwolf@redhat.com>
Thu, 12 Sep 2013 08:12:48 +0000 (10:12 +0200)
Add an Error ** parameter to BlockDriver.bdrv_create to allow more
specific error messages.

Signed-off-by: Max Reitz <mreitz@redhat.com>
17 files changed:
block.c
block/cow.c
block/gluster.c
block/iscsi.c
block/qcow.c
block/qcow2.c
block/qed.c
block/raw-posix.c
block/raw-win32.c
block/raw_bsd.c
block/rbd.c
block/sheepdog.c
block/ssh.c
block/vdi.c
block/vmdk.c
block/vpc.c
include/block/block_int.h

diff --git a/block.c b/block.c
index 89098bc6b0c544d403d43dac6d9dab00e8139b6d..f9b7033503418623662bc984429b1524312e7888 100644 (file)
--- a/block.c
+++ b/block.c
@@ -401,7 +401,7 @@ static void coroutine_fn bdrv_create_co_entry(void *opaque)
     CreateCo *cco = opaque;
     assert(cco->drv);
 
-    cco->ret = cco->drv->bdrv_create(cco->filename, cco->options);
+    cco->ret = cco->drv->bdrv_create(cco->filename, cco->options, NULL);
 }
 
 int bdrv_create(BlockDriver *drv, const char* filename,
index 3ae1b5cdc99f2c8e071c6fe69ddf7a7c9668e88a..e252c95601b8842d9db6132dd25b31733d32a48b 100644 (file)
@@ -295,7 +295,8 @@ static void cow_close(BlockDriverState *bs)
 {
 }
 
-static int cow_create(const char *filename, QEMUOptionParameter *options)
+static int cow_create(const char *filename, QEMUOptionParameter *options,
+                      Error **errp)
 {
     struct cow_header_v2 cow_header;
     struct stat st;
index 6c7b000db6292be13e88c260853dd118c11ce5f6..256de10ed3975356a631307e8d5b263ef144e6bf 100644 (file)
@@ -357,7 +357,7 @@ out:
 }
 
 static int qemu_gluster_create(const char *filename,
-        QEMUOptionParameter *options)
+        QEMUOptionParameter *options, Error **errp)
 {
     struct glfs *glfs;
     struct glfs_fd *fd;
index 5f26e7379c9f77fc4d082d51b0fe9bf70334e8f7..997b1221410c0512b183303f0715f00ba301a64d 100644 (file)
@@ -1238,7 +1238,8 @@ static int iscsi_has_zero_init(BlockDriverState *bs)
     return 0;
 }
 
-static int iscsi_create(const char *filename, QEMUOptionParameter *options)
+static int iscsi_create(const char *filename, QEMUOptionParameter *options,
+                        Error **errp)
 {
     int ret = 0;
     int64_t total_size = 0;
index 2a1c9c9e8715771441575412605fff5c207f2cfb..0911edff6cc7f10507631de427eb31a2dd318e82 100644 (file)
@@ -659,7 +659,8 @@ static void qcow_close(BlockDriverState *bs)
     error_free(s->migration_blocker);
 }
 
-static int qcow_create(const char *filename, QEMUOptionParameter *options)
+static int qcow_create(const char *filename, QEMUOptionParameter *options,
+                       Error **errp)
 {
     int header_size, backing_filename_len, l1_size, shift, i;
     QCowHeader header;
index eda085cfd86bca881227cdb25eea42061109ed31..43edc5bd2a30265aa3484737e76693b6d383cba0 100644 (file)
@@ -1468,7 +1468,8 @@ out:
     return ret;
 }
 
-static int qcow2_create(const char *filename, QEMUOptionParameter *options)
+static int qcow2_create(const char *filename, QEMUOptionParameter *options,
+                        Error **errp)
 {
     const char *backing_file = NULL;
     const char *backing_fmt = NULL;
index 69e1834ff67282ed039250b5990f89b779e27101..250fa89b0f3d1708cc2b9e849f8d5cdde1e397ad 100644 (file)
@@ -604,7 +604,8 @@ out:
     return ret;
 }
 
-static int bdrv_qed_create(const char *filename, QEMUOptionParameter *options)
+static int bdrv_qed_create(const char *filename, QEMUOptionParameter *options,
+                           Error **errp)
 {
     uint64_t image_size = 0;
     uint32_t cluster_size = QED_DEFAULT_CLUSTER_SIZE;
index dcdf45c4ac267e611e7defadff8aadcbeed98119..3ee5b625090f38855a88c089bbad5e33678b70d1 100644 (file)
@@ -1041,7 +1041,8 @@ static int64_t raw_get_allocated_file_size(BlockDriverState *bs)
     return (int64_t)st.st_blocks * 512;
 }
 
-static int raw_create(const char *filename, QEMUOptionParameter *options)
+static int raw_create(const char *filename, QEMUOptionParameter *options,
+                      Error **errp)
 {
     int fd;
     int result = 0;
@@ -1506,7 +1507,8 @@ static coroutine_fn BlockDriverAIOCB *hdev_aio_discard(BlockDriverState *bs,
                        cb, opaque, QEMU_AIO_DISCARD|QEMU_AIO_BLKDEV);
 }
 
-static int hdev_create(const char *filename, QEMUOptionParameter *options)
+static int hdev_create(const char *filename, QEMUOptionParameter *options,
+                       Error **errp)
 {
     int fd;
     int ret = 0;
index 80551b957c65ed299d017d4f3b870da4799fb9a0..1e7651be61ed6820d4e2bcd0fc9b7a7a5753cd5a 100644 (file)
@@ -422,7 +422,8 @@ static int64_t raw_get_allocated_file_size(BlockDriverState *bs)
     return st.st_size;
 }
 
-static int raw_create(const char *filename, QEMUOptionParameter *options)
+static int raw_create(const char *filename, QEMUOptionParameter *options,
+                      Error **errp)
 {
     int fd;
     int64_t total_size = 0;
index 2418f580cc3a8bb00e059d143e400699bd7b40fd..7d75ad282f39b3ca2e9c5998fa156fddee7307a0 100644 (file)
@@ -130,7 +130,8 @@ static int raw_has_zero_init(BlockDriverState *bs)
     return bdrv_has_zero_init(bs->file);
 }
 
-static int raw_create(const char *filename, QEMUOptionParameter *options)
+static int raw_create(const char *filename, QEMUOptionParameter *options,
+                      Error **errp)
 {
     return bdrv_create_file(filename, options);
 }
index b77f73ca89a7bf570c269b238993859985023552..11086c35c480d6b7ed39892b4b5346f5dc7ecd38 100644 (file)
@@ -287,7 +287,8 @@ static int qemu_rbd_set_conf(rados_t cluster, const char *conf)
     return ret;
 }
 
-static int qemu_rbd_create(const char *filename, QEMUOptionParameter *options)
+static int qemu_rbd_create(const char *filename, QEMUOptionParameter *options,
+                           Error **errp)
 {
     int64_t bytes = 0;
     int64_t objsize;
index 1cfc6aedd521e45ebe01d8b1307f9be06cdf9f86..a93a32a2aee345de492d6490e4098ee7eb230015 100644 (file)
@@ -1438,7 +1438,8 @@ out:
     return ret;
 }
 
-static int sd_create(const char *filename, QEMUOptionParameter *options)
+static int sd_create(const char *filename, QEMUOptionParameter *options,
+                     Error **errp)
 {
     int ret = 0;
     uint32_t vid = 0, base_vid = 0;
index 23cd1f07e5cec63f26f3fbe402b7b03569e1a7f7..aa63c9d20ee3eedd6714c1bcdba7285c6a3fc366 100644 (file)
@@ -651,7 +651,8 @@ static QEMUOptionParameter ssh_create_options[] = {
     { NULL }
 };
 
-static int ssh_create(const char *filename, QEMUOptionParameter *options)
+static int ssh_create(const char *filename, QEMUOptionParameter *options,
+                      Error **errp)
 {
     int r, ret;
     Error *local_err = NULL;
index dedbafb539e4e344dc7c204b925fe0dc57698ce7..dcbc27c9cbd40dec6f082849a1a0e9b80066937e 100644 (file)
@@ -645,7 +645,8 @@ static int vdi_co_write(BlockDriverState *bs,
     return ret;
 }
 
-static int vdi_create(const char *filename, QEMUOptionParameter *options)
+static int vdi_create(const char *filename, QEMUOptionParameter *options,
+                      Error **errp)
 {
     int fd;
     int result = 0;
index d60bf0cdf88fd7717a4ec4e5e31f85fc1520467d..a98da086a7f9f35ebb12b13a8fe066420d5e6590 100644 (file)
@@ -1552,7 +1552,8 @@ static int filename_decompose(const char *filename, char *path, char *prefix,
     return VMDK_OK;
 }
 
-static int vmdk_create(const char *filename, QEMUOptionParameter *options)
+static int vmdk_create(const char *filename, QEMUOptionParameter *options,
+                       Error **errp)
 {
     int fd, idx = 0;
     char desc[BUF_SIZE];
index ed00370bad3fdbdef8e24debb6f99f377a347ac4..db61274332c57017964d16a2b817d74719ca0894 100644 (file)
@@ -684,7 +684,8 @@ static int create_fixed_disk(int fd, uint8_t *buf, int64_t total_size)
     return ret;
 }
 
-static int vpc_create(const char *filename, QEMUOptionParameter *options)
+static int vpc_create(const char *filename, QEMUOptionParameter *options,
+                      Error **errp)
 {
     uint8_t buf[1024];
     struct vhd_footer *footer = (struct vhd_footer *) buf;
index 076b40aa437ffc90d3b09b4ff27fe4bd191bc229..3eeb6fe2a4433ebe12da765a8f353106f69bca5b 100644 (file)
@@ -90,7 +90,8 @@ struct BlockDriver {
                       const uint8_t *buf, int nb_sectors);
     void (*bdrv_close)(BlockDriverState *bs);
     void (*bdrv_rebind)(BlockDriverState *bs);
-    int (*bdrv_create)(const char *filename, QEMUOptionParameter *options);
+    int (*bdrv_create)(const char *filename, QEMUOptionParameter *options,
+                       Error **errp);
     int (*bdrv_set_key)(BlockDriverState *bs, const char *key);
     int (*bdrv_make_empty)(BlockDriverState *bs);
     /* aio */