]> git.ipfire.org Git - people/teissler/ipfire-2.x.git/blob - src/patches/suse-2.6.27.31/patches.fixes/scsi-dh-emc-mode-select-10-size
Reenabled linux-xen, added patches for Xen Kernel Version 2.6.27.31,
[people/teissler/ipfire-2.x.git] / src / patches / suse-2.6.27.31 / patches.fixes / scsi-dh-emc-mode-select-10-size
1 From: Hannes Reinecke <hare@suse.de>
2 Subject: DM-MPIO fails to tresspass LUNs on CLARiiON arrays
3 References: bnc#484529
4
5 When failing active paths on Clariion arrays, the trespass
6 command is sent but not process correctly. Reason is that
7 we're not formatting the command correctly, and the array
8 just silently ignores the error.
9
10 Signed-off-by: Hannes Reinecke <hare@suse.de>
11
12 diff --git a/drivers/scsi/device_handler/scsi_dh_emc.c b/drivers/scsi/device_handler/scsi_dh_emc.c
13 index 2505237..822680e 100644
14 --- a/drivers/scsi/device_handler/scsi_dh_emc.c
15 +++ b/drivers/scsi/device_handler/scsi_dh_emc.c
16 @@ -286,14 +286,17 @@ static struct request *get_req(struct scsi_device *sdev, int cmd,
17 len = sizeof(short_trespass);
18 rq->cmd_flags |= REQ_RW;
19 rq->cmd[1] = 0x10;
20 + rq->cmd[4] = len;
21 break;
22 case MODE_SELECT_10:
23 len = sizeof(long_trespass);
24 rq->cmd_flags |= REQ_RW;
25 rq->cmd[1] = 0x10;
26 + rq->cmd[8] = len;
27 break;
28 case INQUIRY:
29 len = CLARIION_BUFFER_SIZE;
30 + rq->cmd[4] = len;
31 memset(buffer, 0, len);
32 break;
33 default:
34 @@ -301,7 +304,6 @@ static struct request *get_req(struct scsi_device *sdev, int cmd,
35 break;
36 }
37
38 - rq->cmd[4] = len;
39 rq->cmd_type = REQ_TYPE_BLOCK_PC;
40 rq->cmd_flags |= REQ_FAILFAST_DEV | REQ_FAILFAST_TRANSPORT |
41 REQ_FAILFAST_DRIVER;