commit 2836e73adcd994de071f4eec1aa538a5ca849118
Author: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
Date: Fri Sep 4 16:19:54 2009 +0100
Fix to eject cdrom on HVM Domain
We tried to eject cdrom(/dev/hdc) on HVM Domain.
But, cdrom media are not ejected from the cdrom device on HostOS.
The module to eject the cdrom device has already been implemented in
qemu-dm.
But, all devices are opened as raw device for VBD.
Therefore, the module to eject the cdrom device is not work.
The cdrom device was corrected to open as a physical device on HostOS.
When eject is executed on HVM Domain, cdrom media are ejected from the
cdrom device on HostOS.
This patch corrected the problem.
Signed-off-by: Takanori Kasai <kasai.takanori@xxxxxxxxxxxxxx>
---
xenstore.c | 15 +++++++++++++--
1 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/xenstore.c b/xenstore.c
index aee96f0..bdc25c3 100644
--- a/xenstore.c
+++ b/xenstore.c
@@ -107,7 +107,14 @@ static void insert_media(void *opaque)
for (i = 0; i < MAX_DRIVES + 1; i++) {
bs = drives_table[i].bdrv;
if (media_filename[i] && bs && bs->filename[0] == '\0') {
- bdrv_open2(bs, media_filename[i], 0, &bdrv_raw);
+ BlockDriver *format;
+ if ( strstart(media_filename[i], "/dev/cd", NULL)
+ || strstart(media_filename[i], "/dev/scd", NULL))
+ format = &bdrv_host_device;
+ else
+ format = &bdrv_raw;
+
+ bdrv_open2(bs, media_filename[i], 0, format);
pstrcpy(bs->filename, sizeof(bs->filename), media_filename[i]);
free(media_filename[i]);
media_filename[i] = NULL;
@@ -533,7 +540,11 @@ void xenstore_parse_domain_config(int hvm_domid)
} else if (!strcmp(drv,"file")) {
format = &bdrv_raw;
} else if (!strcmp(drv,"phy")) {
- format = &bdrv_raw;
+ if (strstart(params, "/dev/cd", NULL)
+ || strstart(params, "/dev/scd", NULL))
+ format = &bdrv_host_device;
+ else
+ format = &bdrv_raw;
} else {
format = bdrv_find_format(drv);
if (!format) {
--
generated by git-patchbot for /home/xen/git/qemu-xen-unstable.git
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|