mirror of
https://github.com/qemu/qemu.git
synced 2024-11-25 11:53:39 +08:00
xen: Don't change -drive if=xen device name during machine init
A "top" BlockDriverState has a non-empty device_name. If the user doesn't specify one with -drive parameter id, the system supplies a default name. xen_config_dev_blk() changes this name, during machine initialization. Naughty. Don't do that. Signed-off-by: Markus Armbruster <armbru@redhat.com> Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
f8d6bba1c1
commit
8814a05112
@ -94,16 +94,15 @@ static int xen_config_dev_all(char *fe, char *be)
|
||||
|
||||
int xen_config_dev_blk(DriveInfo *disk)
|
||||
{
|
||||
char fe[256], be[256];
|
||||
char fe[256], be[256], device_name[32];
|
||||
int vdev = 202 * 256 + 16 * disk->unit;
|
||||
int cdrom = disk->media_cd;
|
||||
const char *devtype = cdrom ? "cdrom" : "disk";
|
||||
const char *mode = cdrom ? "r" : "w";
|
||||
|
||||
snprintf(disk->bdrv->device_name, sizeof(disk->bdrv->device_name),
|
||||
"xvd%c", 'a' + disk->unit);
|
||||
snprintf(device_name, sizeof(device_name), "xvd%c", 'a' + disk->unit);
|
||||
xen_be_printf(NULL, 1, "config disk %d [%s]: %s\n",
|
||||
disk->unit, disk->bdrv->device_name, disk->bdrv->filename);
|
||||
disk->unit, device_name, disk->bdrv->filename);
|
||||
xen_config_dev_dirs("vbd", "qdisk", vdev, fe, be, sizeof(fe));
|
||||
|
||||
/* frontend */
|
||||
@ -111,7 +110,7 @@ int xen_config_dev_blk(DriveInfo *disk)
|
||||
xenstore_write_str(fe, "device-type", devtype);
|
||||
|
||||
/* backend */
|
||||
xenstore_write_str(be, "dev", disk->bdrv->device_name);
|
||||
xenstore_write_str(be, "dev", device_name);
|
||||
xenstore_write_str(be, "type", "file");
|
||||
xenstore_write_str(be, "params", disk->bdrv->filename);
|
||||
xenstore_write_str(be, "mode", mode);
|
||||
|
Loading…
Reference in New Issue
Block a user