File multipath-tools-return-ghost-state-when-port-is-in-standby of Package multipath-tools
From 7958927b8263d268780350449b6fd18fc329b060 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Thu, 19 Feb 2009 16:19:45 +0100
Subject: [PATCH] Return 'ghost' state when port is in standby
Currently, issuing a TUR command on a path in standby
mode, it returns a Unit Attention status. This is
reported as a Failed path by the SLES11 tur checker.
Instead, this has to be reported as Ghost path based
on the additional sense code and sense code qualifier values.
References: 475816
Signed-off-by: Hannes Reinecke <hare@suse.de>
---
libmultipath/checkers/tur.c | 13 +++++++++++++
1 files changed, 13 insertions(+), 0 deletions(-)
diff --git a/libmultipath/checkers/tur.c b/libmultipath/checkers/tur.c
index aa6e3ad..e06dc52 100644
--- a/libmultipath/checkers/tur.c
+++ b/libmultipath/checkers/tur.c
@@ -22,6 +22,7 @@
#define MSG_TUR_UP "tur checker reports path is up"
#define MSG_TUR_DOWN "tur checker reports path is down"
+#define MSG_TUR_GHOST "tur checker reports path is in standby state"
struct tur_checker_context {
void * dummy;
@@ -95,6 +96,18 @@ libcheck_check (struct checker * c)
if (--retry_tur)
goto retry;
}
+ else if (key == 0x2) {
+ /* Not Ready */
+ /* Note: Other ALUA states are either UP or DOWN */
+ if( asc == 0x04 && ascq == 0x0b){
+ /*
+ * LOGICAL UNIT NOT ACCESSIBLE,
+ * TARGET PORT IN STANDBY STATE
+ */
+ MSG(c, MSG_TUR_GHOST);
+ return PATH_GHOST;
+ }
+ }
MSG(c, MSG_TUR_DOWN);
return PATH_DOWN;
}
--
1.6.0.2