diff options
author | Ram Pai <linuxram@us.ibm.com> | 2009-06-26 17:41:50 -0700 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2009-06-29 13:50:05 -0500 |
commit | 707c0dbc97cddfe8d2441b8259c6c526d99f2dd8 (patch) | |
tree | b577fac92b2f94e300f1ce73804febecb615fdc8 /block | |
parent | ab4e5602a88402fdf7109e5093cace35a7471699 (diff) |
support colon in filenames
Problem: It is impossible to feed filenames with the character colon because
qemu interprets such names as a protocol. For example filename scsi:0, is
interpreted as a protocol by name "scsi".
This patch allows user to espace colon characters. For example the above
filename can now be expressed either as 'scsi\:0' or as file:scsi:0
anything following the "file:" tag is interpreted verbatin. However if "file:"
tag is omitted then any colon characters in the string must be escaped using
backslash.
Here are couple of examples:
scsi\:0\:abc is a local file scsi:0:abc
http\://myweb is a local file by name http://myweb
file:scsi:0:abc is a local file scsi:0:abc
file:http://myweb is a local file by name http://myweb
Signed-off-by: Ram Pai <linuxram@us.ibm.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'block')
-rw-r--r-- | block/dmg.c | 2 | ||||
-rw-r--r-- | block/raw-posix.c | 1 |
2 files changed, 2 insertions, 1 deletions
diff --git a/block/dmg.c b/block/dmg.c index 262560ffd3..dd98af4376 100644 --- a/block/dmg.c +++ b/block/dmg.c @@ -94,7 +94,7 @@ dmg_close: close(s->fd); /* open raw instead */ bs->drv=bdrv_find_format("raw"); - return bs->drv->bdrv_open(bs, filename, flags); + return bdrv_open3(bs, filename, flags, bs->drv); } info_begin=read_off(s->fd); if(info_begin==0) diff --git a/block/raw-posix.c b/block/raw-posix.c index fa1a39462a..31b68ff813 100644 --- a/block/raw-posix.c +++ b/block/raw-posix.c @@ -892,6 +892,7 @@ static BlockDriver bdrv_raw = { .bdrv_getlength = raw_getlength, .create_options = raw_create_options, + .protocol_name = "file", }; /***********************************************/ |