diff options
author | Hannes Reinecke <hare@suse.de> | 2009-09-16 12:23:30 +0200 |
---|---|---|
committer | Hannes Reinecke <hare@suse.de> | 2011-05-03 10:19:33 +0200 |
commit | 34825c7a9ef60b97277834c3fda75f65eefe2fbb (patch) | |
tree | f89156e18fbadb1a44c614b1b2c1305ac540c3fd | |
parent | b53e0e03d05e40533a254acce125c90dc5144849 (diff) | |
download | multipath-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.c | 8 |
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; |