diff options
author | Mike Christie <michaelc@cs.wisc.edu> | 2009-10-15 20:46:39 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2009-12-04 13:00:41 -0500 |
commit | e881a172dac4d9ea3b2a1540041d872963c269bd (patch) | |
tree | 9eb1f344b107806c0041c4e0a64192a055117289 /drivers/scsi/ibmvscsi | |
parent | dbf9bfe615717d1145f263c0049fe2328e6ed395 (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.c | 7 | ||||
-rw-r--r-- | drivers/scsi/ibmvscsi/ibmvscsi.c | 7 |
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 | **/ |
2771 | static int ibmvfc_change_queue_depth(struct scsi_device *sdev, int qdepth) | 2772 | static 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 | **/ |
1644 | static int ibmvscsi_change_queue_depth(struct scsi_device *sdev, int qdepth) | 1645 | static 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 | ||