[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 04/11] scsi: Reject unimplemented error actions
From: |
Markus Armbruster |
Subject: |
[Qemu-devel] [PATCH 04/11] scsi: Reject unimplemented error actions |
Date: |
Wed, 30 Jun 2010 13:55:35 +0200 |
drive_init() doesn't permit rerror for if=scsi, but that's worthless:
we get it via if=none and -device.
Moreover, scsi-generic doesn't support werror. Since drive_init()
doesn't catch that, option werror was silently ignored even with
if=scsi.
Signed-off-by: Markus Armbruster <address@hidden>
---
hw/scsi-disk.c | 5 +++++
hw/scsi-generic.c | 9 +++++++++
2 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/hw/scsi-disk.c b/hw/scsi-disk.c
index 3e41011..c30709c 100644
--- a/hw/scsi-disk.c
+++ b/hw/scsi-disk.c
@@ -1059,6 +1059,11 @@ static int scsi_disk_initfn(SCSIDevice *dev)
s->bs = s->qdev.conf.bs;
is_cd = bdrv_get_type_hint(s->bs) == BDRV_TYPE_CDROM;
+ if (bdrv_get_on_error(s->bs, 1) != BLOCK_ERR_REPORT) {
+ error_report("Device doesn't support drive option rerror");
+ return -1;
+ }
+
if (!s->serial) {
/* try to fall back to value set with legacy -drive serial=... */
dinfo = drive_get_by_blockdev(s->bs);
diff --git a/hw/scsi-generic.c b/hw/scsi-generic.c
index 3915e78..a8b4176 100644
--- a/hw/scsi-generic.c
+++ b/hw/scsi-generic.c
@@ -474,6 +474,15 @@ static int scsi_generic_initfn(SCSIDevice *dev)
return -1;
}
+ if (bdrv_get_on_error(s->bs, 0) != BLOCK_ERR_STOP_ENOSPC) {
+ error_report("Device doesn't support drive option werror");
+ return -1;
+ }
+ if (bdrv_get_on_error(s->bs, 1) != BLOCK_ERR_REPORT) {
+ error_report("Device doesn't support drive option rerror");
+ return -1;
+ }
+
/* check we are using a driver managing SG_IO (version 3 and after */
if (bdrv_ioctl(s->bs, SG_GET_VERSION_NUM, &sg_version) < 0 ||
sg_version < 30000) {
--
1.6.6.1
- [Qemu-devel] [PATCH 02/11] block migration: Fix test for read-only drive, (continued)
- [Qemu-devel] [PATCH 02/11] block migration: Fix test for read-only drive, Markus Armbruster, 2010/06/30
- [Qemu-devel] [PATCH 01/11] blockdev: Clean up how readonly persists across virtual media change, Markus Armbruster, 2010/06/30
- [Qemu-devel] [PATCH 10/11] ide: Reject readonly drives unless CD-ROM, Markus Armbruster, 2010/06/30
- [Qemu-devel] [PATCH 07/11] ide: Improve error messages, Markus Armbruster, 2010/06/30
- [Qemu-devel] [PATCH 03/11] raw-posix: Don't "try harder" for BDRV_TYPE_CDROM, Markus Armbruster, 2010/06/30
- [Qemu-devel] [PATCH 08/11] ide: Replace IDEState members is_cdrom, is_cf by drive_kind, Markus Armbruster, 2010/06/30
- [Qemu-devel] [PATCH 09/11] ide: Make ide_init_drive() return success, Markus Armbruster, 2010/06/30
- [Qemu-devel] [PATCH 05/11] fdc: Reject unimplemented error actions, Markus Armbruster, 2010/06/30
- [Qemu-devel] [PATCH 11/11] ide: Reject invalid CHS geometry, Markus Armbruster, 2010/06/30
- [Qemu-devel] [PATCH 06/11] qdev: Don't hw_error() in qdev_init_nofail(), Markus Armbruster, 2010/06/30
- [Qemu-devel] [PATCH 04/11] scsi: Reject unimplemented error actions,
Markus Armbruster <=