]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blame - src/patches/suse-2.6.27.31/patches.arch/s390-04-09-zfcp-host-busy-count-fix.patch
Move xen patchset to new version's subdir.
[people/pmueller/ipfire-2.x.git] / src / patches / suse-2.6.27.31 / patches.arch / s390-04-09-zfcp-host-busy-count-fix.patch
CommitLineData
00e5a55c
BS
1From: Gerald Schaefer <geraldsc@de.ibm.com>
2Subject: zfcp: prevent double decrement on host_busy counter
3References: bnc#445100
4
5Symptom: SCSI host hangs
6Problem: double finish triggerd for one request
7Solution: respond, act according to SCSI_mid_low API
8
9The zfcp_scsi_queuecommand was not acting according to the standard
10when respective unit was not available. In this case an -EBUSY was
11returned, which is not valid in itself, and in addition scsi_done
12was called. This combination is not allowed and was leading to a
13double finish of the request and therefor double decrement of the
14host_busy counter.
15
16Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
17Acked-by: John Jolly <jjolly@suse.de>
18---
19 drivers/s390/scsi/zfcp_scsi.c | 2 +-
20 1 file changed, 1 insertion(+), 1 deletion(-)
21
22Index: linux-sles11/drivers/s390/scsi/zfcp_scsi.c
23===================================================================
24--- linux-sles11.orig/drivers/s390/scsi/zfcp_scsi.c
25+++ linux-sles11/drivers/s390/scsi/zfcp_scsi.c
26@@ -90,7 +90,7 @@ static int zfcp_scsi_queuecommand(struct
27 ret = zfcp_fsf_send_fcp_command_task(adapter, unit, scpnt, 0,
28 ZFCP_REQ_AUTO_CLEANUP);
29 if (unlikely(ret == -EBUSY))
30- zfcp_scsi_command_fail(scpnt, DID_NO_CONNECT);
31+ return SCSI_MLQUEUE_DEVICE_BUSY;
32 else if (unlikely(ret < 0))
33 return SCSI_MLQUEUE_HOST_BUSY;
34