diff mbox

block/raw: Add create_options for host_device

Message ID 1254393349-7557-1-git-send-email-kwolf@redhat.com
State Superseded
Headers show

Commit Message

Kevin Wolf Oct. 1, 2009, 10:35 a.m. UTC
Today host_devices have a create function, so they also need a create_options
field to prevent qemu-img from complaining.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 block/raw-posix.c |   16 ++++++++++------
 1 files changed, 10 insertions(+), 6 deletions(-)

Comments

Christoph Hellwig Oct. 1, 2009, 5:13 p.m. UTC | #1
On Thu, Oct 01, 2009 at 12:35:49PM +0200, Kevin Wolf wrote:
> Today host_devices have a create function, so they also need a create_options
> field to prevent qemu-img from complaining.

Yeah.  But looking deeper does the size argument actually make any
sense for the host devices?  What we do right now is to seek to the
total_size * 512 as some sort of tests, but it's not actually in any
way encoded in the image, we'll always get the normal raw_getlength
return value when quering for the size later.
Kevin Wolf Oct. 2, 2009, 7:33 a.m. UTC | #2
Am 01.10.2009 19:13, schrieb Christoph Hellwig:
> On Thu, Oct 01, 2009 at 12:35:49PM +0200, Kevin Wolf wrote:
>> Today host_devices have a create function, so they also need a create_options
>> field to prevent qemu-img from complaining.
> 
> Yeah.  But looking deeper does the size argument actually make any
> sense for the host devices?  What we do right now is to seek to the
> total_size * 512 as some sort of tests, but it's not actually in any
> way encoded in the image, we'll always get the normal raw_getlength
> return value when quering for the size later.

Well, I do think that it makes sense to check if the device is at least
not too small for the data that we are going to write (we could also
check if it's an exact match, but I'm not sure if this is helpful). But
other than this there is probably little use for it, yes.

What would you suggest? Drop the check completely and change qemu-img to
deal with formats that don't support sizes?

Kevin
diff mbox

Patch

diff --git a/block/raw-posix.c b/block/raw-posix.c
index f612340..20b37a7 100644
--- a/block/raw-posix.c
+++ b/block/raw-posix.c
@@ -1005,13 +1005,14 @@  static int hdev_create(const char *filename, QEMUOptionParameter *options)
 }
 
 static BlockDriver bdrv_host_device = {
-    .format_name	= "host_device",
-    .instance_size	= sizeof(BDRVRawState),
-    .bdrv_probe_device	= hdev_probe_device,
-    .bdrv_open		= hdev_open,
-    .bdrv_close		= raw_close,
+    .format_name        = "host_device",
+    .instance_size      = sizeof(BDRVRawState),
+    .bdrv_probe_device  = hdev_probe_device,
+    .bdrv_open          = hdev_open,
+    .bdrv_close         = raw_close,
     .bdrv_create        = hdev_create,
-    .bdrv_flush		= raw_flush,
+    .create_options     = raw_create_options,
+    .bdrv_flush         = raw_flush,
 
     .bdrv_aio_readv	= raw_aio_readv,
     .bdrv_aio_writev	= raw_aio_writev,
@@ -1106,6 +1107,7 @@  static BlockDriver bdrv_host_floppy = {
     .bdrv_open          = floppy_open,
     .bdrv_close         = raw_close,
     .bdrv_create        = hdev_create,
+    .create_options     = raw_create_options,
     .bdrv_flush         = raw_flush,
 
     .bdrv_aio_readv     = raw_aio_readv,
@@ -1187,6 +1189,7 @@  static BlockDriver bdrv_host_cdrom = {
     .bdrv_open          = cdrom_open,
     .bdrv_close         = raw_close,
     .bdrv_create        = hdev_create,
+    .create_options     = raw_create_options,
     .bdrv_flush         = raw_flush,
 
     .bdrv_aio_readv     = raw_aio_readv,
@@ -1307,6 +1310,7 @@  static BlockDriver bdrv_host_cdrom = {
     .bdrv_open          = cdrom_open,
     .bdrv_close         = raw_close,
     .bdrv_create        = hdev_create,
+    .create_options     = raw_create_options,
     .bdrv_flush         = raw_flush,
 
     .bdrv_aio_readv     = raw_aio_readv,