mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 07:43:54 -06:00
Revert "support colon in filenames"
This reverts commit 707c0dbc97
.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
c6a5a71a3a
commit
1cec71e359
6 changed files with 11 additions and 48 deletions
27
block.c
27
block.c
|
@ -225,7 +225,7 @@ static BlockDriver *find_protocol(const char *filename)
|
|||
{
|
||||
BlockDriver *drv1;
|
||||
char protocol[128];
|
||||
int len = qemu_strnlen(filename, 127) + 1;
|
||||
int len;
|
||||
const char *p;
|
||||
|
||||
#ifdef _WIN32
|
||||
|
@ -233,9 +233,14 @@ static BlockDriver *find_protocol(const char *filename)
|
|||
is_windows_drive_prefix(filename))
|
||||
return bdrv_find_format("raw");
|
||||
#endif
|
||||
p = fill_token(protocol, len, filename, ':');
|
||||
if (*p != ':')
|
||||
p = strchr(filename, ':');
|
||||
if (!p)
|
||||
return bdrv_find_format("raw");
|
||||
len = p - filename;
|
||||
if (len > sizeof(protocol) - 1)
|
||||
len = sizeof(protocol) - 1;
|
||||
memcpy(protocol, filename, len);
|
||||
protocol[len] = '\0';
|
||||
for(drv1 = first_drv; drv1 != NULL; drv1 = drv1->next) {
|
||||
if (drv1->protocol_name &&
|
||||
!strcmp(drv1->protocol_name, protocol))
|
||||
|
@ -409,9 +414,9 @@ int bdrv_open2(BlockDriverState *bs, const char *filename, int flags,
|
|||
open_flags = BDRV_O_RDWR | (flags & BDRV_O_CACHE_MASK);
|
||||
else
|
||||
open_flags = flags & ~(BDRV_O_FILE | BDRV_O_SNAPSHOT);
|
||||
ret = bdrv_open3(bs, filename, open_flags, drv);
|
||||
ret = drv->bdrv_open(bs, filename, open_flags);
|
||||
if ((ret == -EACCES || ret == -EPERM) && !(flags & BDRV_O_FILE)) {
|
||||
ret = bdrv_open3(bs, filename, open_flags & ~BDRV_O_RDWR, drv);
|
||||
ret = drv->bdrv_open(bs, filename, open_flags & ~BDRV_O_RDWR);
|
||||
bs->read_only = 1;
|
||||
}
|
||||
if (ret < 0) {
|
||||
|
@ -456,18 +461,6 @@ int bdrv_open2(BlockDriverState *bs, const char *filename, int flags,
|
|||
return 0;
|
||||
}
|
||||
|
||||
int bdrv_open3(BlockDriverState *bs, const char *filename, int flags, BlockDriver *drv)
|
||||
{
|
||||
char myfile[PATH_MAX];
|
||||
const char *f;
|
||||
|
||||
if (!strstart(filename, "file:", &f)) {
|
||||
fill_token(myfile, PATH_MAX, filename, '\0');
|
||||
return drv->bdrv_open(bs,myfile,flags);
|
||||
}
|
||||
return drv->bdrv_open(bs,f,flags);
|
||||
}
|
||||
|
||||
void bdrv_close(BlockDriverState *bs)
|
||||
{
|
||||
if (bs->drv) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue