aboutsummaryrefslogtreecommitdiff
path: root/block
diff options
context:
space:
mode:
authorRam Pai <linuxram@us.ibm.com>2009-06-26 17:41:50 -0700
committerAnthony Liguori <aliguori@us.ibm.com>2009-06-29 13:50:05 -0500
commit707c0dbc97cddfe8d2441b8259c6c526d99f2dd8 (patch)
treeb577fac92b2f94e300f1ce73804febecb615fdc8 /block
parentab4e5602a88402fdf7109e5093cace35a7471699 (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.c2
-rw-r--r--block/raw-posix.c1
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",
};
/***********************************************/