[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 0621238..37790c0 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 13f425f..11b2dac 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