summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordlg <dlg@openbsd.org>2014-04-19 05:00:06 +0000
committerdlg <dlg@openbsd.org>2014-04-19 05:00:06 +0000
commit7d32ae4d1f51ec5ecf5789e4cbe16db33a098e2e (patch)
tree36e1dc68327bb3a2e8eb8c293637b83fef8a0ab1
parentTwo minor tweaks regarding the fallback from -u/-d to default mode: (diff)
downloadwireguard-openbsd-7d32ae4d1f51ec5ecf5789e4cbe16db33a098e2e.tar.xz
wireguard-openbsd-7d32ae4d1f51ec5ecf5789e4cbe16db33a098e2e.zip
implement emc_mpath_checksense() according to what my cx500 throws.
tested by jmatthew@
-rw-r--r--sys/scsi/mpath_emc.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/sys/scsi/mpath_emc.c b/sys/scsi/mpath_emc.c
index 619db404fdb..d7ace5d8f12 100644
--- a/sys/scsi/mpath_emc.c
+++ b/sys/scsi/mpath_emc.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: mpath_emc.c,v 1.17 2014/04/17 06:38:54 dlg Exp $ */
+/* $OpenBSD: mpath_emc.c,v 1.18 2014/04/19 05:00:06 dlg Exp $ */
/*
* Copyright (c) 2011 David Gwynne <dlg@openbsd.org>
@@ -204,6 +204,15 @@ emc_mpath_start(struct scsi_xfer *xs)
int
emc_mpath_checksense(struct scsi_xfer *xs)
{
+ struct scsi_sense_data *sense = &xs->sense;
+
+ if ((sense->error_code & SSD_ERRCODE) == SSD_ERRCODE_CURRENT &&
+ (sense->flags & SSD_KEY) == SKEY_NOT_READY &&
+ ASC_ASCQ(sense) == 0x0403) {
+ /* Logical Unit Not Ready, Manual Intervention Required */
+ return (MPATH_SENSE_FAILOVER);
+ }
+
return (MPATH_SENSE_DECLINED);
}