[SCSI] ipr: fix synchronous request flags for better performance
authorWayne Boyer <wayneb@linux.vnet.ibm.com>
Thu, 31 Mar 2011 16:56:10 +0000 (09:56 -0700)
committerJames Bottomley <James.Bottomley@suse.de>
Sun, 1 May 2011 15:16:44 +0000 (10:16 -0500)
In testing it was noticed that Extended Delay after Reset flag was being set
for gscsi and volume set devices.  This had a negative effect on performance
for volume sets.  The fix is to only set the flag for gscsi devices.

Signed-off-by: Wayne Boyer <wayneb@linux.vnet.ibm.com>
Acked-by: Brian King <brking@linux.vnet.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/ipr.c
drivers/scsi/ipr.h

index 0621238fac4a7972a0fa968675e6f5e40d41c34a..37790c073c28f7acd2ea72a95de25a6b9a5ad6cd 100644 (file)
@@ -5773,7 +5773,8 @@ static int ipr_queuecommand_lck(struct scsi_cmnd *scsi_cmd,
                }
 
                ioarcb->cmd_pkt.flags_hi |= IPR_FLAGS_HI_NO_LINK_DESC;
-               ioarcb->cmd_pkt.flags_lo |= IPR_FLAGS_LO_DELAY_AFTER_RST;
+               if (ipr_is_gscsi(res))
+                       ioarcb->cmd_pkt.flags_lo |= IPR_FLAGS_LO_DELAY_AFTER_RST;
                ioarcb->cmd_pkt.flags_lo |= IPR_FLAGS_LO_ALIGNED_BFR;
                ioarcb->cmd_pkt.flags_lo |= ipr_get_task_attributes(scsi_cmd);
        }
index 13f425fb8851f5206f74be7a3c0615dea0b0ca8d..11b2dac71ab33cc2c6a68ef10f7b5c19b9c37f1b 100644 (file)
@@ -474,7 +474,7 @@ struct ipr_cmd_pkt {
 
        u8 flags_lo;
 #define IPR_FLAGS_LO_ALIGNED_BFR               0x20
-#define IPR_FLAGS_LO_DELAY_AFTER_RST   0x10
+#define IPR_FLAGS_LO_DELAY_AFTER_RST           0x10
 #define IPR_FLAGS_LO_UNTAGGED_TASK             0x00
 #define IPR_FLAGS_LO_SIMPLE_TASK               0x02
 #define IPR_FLAGS_LO_ORDERED_TASK              0x04