aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/ibmvscsi
diff options
context:
space:
mode:
authorMike Christie <michaelc@cs.wisc.edu>2009-10-15 20:46:39 -0400
committerJames Bottomley <James.Bottomley@suse.de>2009-12-04 13:00:41 -0500
commite881a172dac4d9ea3b2a1540041d872963c269bd (patch)
tree9eb1f344b107806c0041c4e0a64192a055117289 /drivers/scsi/ibmvscsi
parentdbf9bfe615717d1145f263c0049fe2328e6ed395 (diff)
[SCSI] modify change_queue_depth to take in reason why it is being called
This patch modifies scsi_host_template->change_queue_depth so that it takes an argument indicating why it is being called. This will be used so that if a LLD needs to do some extra processing when handling queue fulls or later ramp ups, it can do so. This is a simple port of the drivers setting a change_queue_depth callback. In the patch I just have these LLDs adjust the queue depth if the user was requesting it. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> [Vasu.Dev: v2 Also converted pmcraid_change_queue_depth and then verified all modules compile using "make allmodconfig" for any new build warnings on X86_64. Updated original description after combing two original patches from Mike to make this patch git bisectable.] Signed-off-by: Vasu Dev <vasu.dev@intel.com> [jejb: fixed up 53c700] Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/ibmvscsi')
-rw-r--r--drivers/scsi/ibmvscsi/ibmvfc.c7
-rw-r--r--drivers/scsi/ibmvscsi/ibmvscsi.c7
2 files changed, 12 insertions, 2 deletions
diff --git a/drivers/scsi/ibmvscsi/ibmvfc.c b/drivers/scsi/ibmvscsi/ibmvfc.c
index bc9beb8c587c..87b536a97cb4 100644
--- a/drivers/scsi/ibmvscsi/ibmvfc.c
+++ b/drivers/scsi/ibmvscsi/ibmvfc.c
@@ -2764,12 +2764,17 @@ static int ibmvfc_slave_configure(struct scsi_device *sdev)
2764 * ibmvfc_change_queue_depth - Change the device's queue depth 2764 * ibmvfc_change_queue_depth - Change the device's queue depth
2765 * @sdev: scsi device struct 2765 * @sdev: scsi device struct
2766 * @qdepth: depth to set 2766 * @qdepth: depth to set
2767 * @reason: calling context
2767 * 2768 *
2768 * Return value: 2769 * Return value:
2769 * actual depth set 2770 * actual depth set
2770 **/ 2771 **/
2771static int ibmvfc_change_queue_depth(struct scsi_device *sdev, int qdepth) 2772static int ibmvfc_change_queue_depth(struct scsi_device *sdev, int qdepth,
2773 int reason)
2772{ 2774{
2775 if (reason != SCSI_QDEPTH_DEFAULT)
2776 return -EOPNOTSUPP;
2777
2773 if (qdepth > IBMVFC_MAX_CMDS_PER_LUN) 2778 if (qdepth > IBMVFC_MAX_CMDS_PER_LUN)
2774 qdepth = IBMVFC_MAX_CMDS_PER_LUN; 2779 qdepth = IBMVFC_MAX_CMDS_PER_LUN;
2775 2780
diff --git a/drivers/scsi/ibmvscsi/ibmvscsi.c b/drivers/scsi/ibmvscsi/ibmvscsi.c
index d9b0e9d31983..e475b7957c2d 100644
--- a/drivers/scsi/ibmvscsi/ibmvscsi.c
+++ b/drivers/scsi/ibmvscsi/ibmvscsi.c
@@ -1637,12 +1637,17 @@ static int ibmvscsi_slave_configure(struct scsi_device *sdev)
1637 * ibmvscsi_change_queue_depth - Change the device's queue depth 1637 * ibmvscsi_change_queue_depth - Change the device's queue depth
1638 * @sdev: scsi device struct 1638 * @sdev: scsi device struct
1639 * @qdepth: depth to set 1639 * @qdepth: depth to set
1640 * @reason: calling context
1640 * 1641 *
1641 * Return value: 1642 * Return value:
1642 * actual depth set 1643 * actual depth set
1643 **/ 1644 **/
1644static int ibmvscsi_change_queue_depth(struct scsi_device *sdev, int qdepth) 1645static int ibmvscsi_change_queue_depth(struct scsi_device *sdev, int qdepth,
1646 int reason)
1645{ 1647{
1648 if (reason != SCSI_QDEPTH_DEFAULT)
1649 return -EOPNOTSUPP;
1650
1646 if (qdepth > IBMVSCSI_MAX_CMDS_PER_LUN) 1651 if (qdepth > IBMVSCSI_MAX_CMDS_PER_LUN)
1647 qdepth = IBMVSCSI_MAX_CMDS_PER_LUN; 1652 qdepth = IBMVSCSI_MAX_CMDS_PER_LUN;
1648 1653