]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blob - src/patches/suse-2.6.27.25/patches.arch/s390-04-09-zfcp-host-busy-count-fix.patch
Revert "Move xen patchset to new version's subdir."
[people/pmueller/ipfire-2.x.git] / src / patches / suse-2.6.27.25 / patches.arch / s390-04-09-zfcp-host-busy-count-fix.patch
1 From: Gerald Schaefer <geraldsc@de.ibm.com>
2 Subject: zfcp: prevent double decrement on host_busy counter
3 References: bnc#445100
4
5 Symptom: SCSI host hangs
6 Problem: double finish triggerd for one request
7 Solution: respond, act according to SCSI_mid_low API
8
9 The zfcp_scsi_queuecommand was not acting according to the standard
10 when respective unit was not available. In this case an -EBUSY was
11 returned, which is not valid in itself, and in addition scsi_done
12 was called. This combination is not allowed and was leading to a
13 double finish of the request and therefor double decrement of the
14 host_busy counter.
15
16 Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
17 Acked-by: John Jolly <jjolly@suse.de>
18 ---
19 drivers/s390/scsi/zfcp_scsi.c | 2 +-
20 1 file changed, 1 insertion(+), 1 deletion(-)
21
22 Index: 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