# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1201186232 0
# Node ID 90162a182a0dab15c8807f9343d6322b32a3b9db
# Parent a6d71da3ec6f0b1cf9f565c440f5ec1f7e631e94
ioemu: cache the BlockDriverState pointer
This actually fixes a bug in the scsi case.
Signed-off-by: Samuel Thibault <samuel.thibault@xxxxxxxxxxxxx>
xen-unstable changeset: 16863:6496ad18c3e286d03dc5f3b80588d06deec7c39f
xen-unstable date: Wed Jan 23 18:02:48 2008 +0000
---
tools/ioemu/xenstore.c | 9 +++++----
1 files changed, 5 insertions(+), 4 deletions(-)
diff -r a6d71da3ec6f -r 90162a182a0d tools/ioemu/xenstore.c
--- a/tools/ioemu/xenstore.c Thu Jan 24 14:50:01 2008 +0000
+++ b/tools/ioemu/xenstore.c Thu Jan 24 14:50:32 2008 +0000
@@ -85,6 +85,7 @@ void xenstore_parse_domain_config(int do
*dev = NULL, *params = NULL, *type = NULL, *drv = NULL;
int i, is_scsi, is_hdN = 0;
unsigned int len, num, hd_index;
+ BlockDriverState *bs;
for(i = 0; i < MAX_DISKS + MAX_SCSI_DISKS; i++)
media_filename[i] = NULL;
@@ -209,17 +210,17 @@ void xenstore_parse_domain_config(int do
}
}
- bs_table[hd_index + (is_scsi ? MAX_DISKS : 0)] = bdrv_new(dev);
+ bs = bs_table[hd_index + (is_scsi ? MAX_DISKS : 0)] = bdrv_new(dev);
/* check if it is a cdrom */
if (type && !strcmp(type, "cdrom")) {
- bdrv_set_type_hint(bs_table[hd_index], BDRV_TYPE_CDROM);
+ bdrv_set_type_hint(bs, BDRV_TYPE_CDROM);
if (pasprintf(&buf, "%s/params", bpath) != -1)
xs_watch(xsh, buf, dev);
}
+
/* open device now if media present */
if (params[0]) {
- if (bdrv_open(bs_table[hd_index + (is_scsi ? MAX_DISKS : 0)],
- params, 0 /* snapshot */) < 0)
+ if (bdrv_open(bs, params, 0 /* snapshot */) < 0)
fprintf(stderr, "qemu: could not open hard disk image '%s'\n",
params);
}
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|