aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHannes Reinecke <hare@suse.de>2009-09-16 12:23:30 +0200
committerHannes Reinecke <hare@suse.de>2011-05-03 10:19:33 +0200
commit34825c7a9ef60b97277834c3fda75f65eefe2fbb (patch)
treef89156e18fbadb1a44c614b1b2c1305ac540c3fd
parentb53e0e03d05e40533a254acce125c90dc5144849 (diff)
downloadmultipath-tools-34825c7a9ef60b97277834c3fda75f65eefe2fbb.tar.gz
TUR checker should not return 'failed' for reservation conflict
Some SCSI-3 arrays might return 'Reservation conflict' even for TEST UNIT READY. But this doesn't indicate that the path is faulty. So we should return the proper status here. References: bnc#498413 Signed-off-by: Hannes Reinecke <hare@suse.de>
-rw-r--r--libmultipath/checkers/tur.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/libmultipath/checkers/tur.c b/libmultipath/checkers/tur.c
index 55fab26..8af5777 100644
--- a/libmultipath/checkers/tur.c
+++ b/libmultipath/checkers/tur.c
@@ -61,6 +61,14 @@ libcheck_check (struct checker * c)
MSG(c, MSG_TUR_DOWN);
return PATH_DOWN;
}
+ if ((io_hdr.status & 0x7e) == 0x18) {
+ /*
+ * SCSI-3 arrays might return
+ * reservation conflict on TUR
+ */
+ MSG(c, MSG_TUR_UP);
+ return PATH_UP;
+ }
if (io_hdr.info & SG_INFO_OK_MASK) {
int key = 0, asc, ascq;