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/ata/libata-scsi.c | |
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/ata/libata-scsi.c')
-rw-r--r-- | drivers/ata/libata-scsi.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c index b4ee28dec521..5d52c2fcd076 100644 --- a/drivers/ata/libata-scsi.c +++ b/drivers/ata/libata-scsi.c | |||
@@ -1208,6 +1208,7 @@ void ata_scsi_slave_destroy(struct scsi_device *sdev) | |||
1208 | * ata_scsi_change_queue_depth - SCSI callback for queue depth config | 1208 | * ata_scsi_change_queue_depth - SCSI callback for queue depth config |
1209 | * @sdev: SCSI device to configure queue depth for | 1209 | * @sdev: SCSI device to configure queue depth for |
1210 | * @queue_depth: new queue depth | 1210 | * @queue_depth: new queue depth |
1211 | * @reason: calling context | ||
1211 | * | 1212 | * |
1212 | * This is libata standard hostt->change_queue_depth callback. | 1213 | * This is libata standard hostt->change_queue_depth callback. |
1213 | * SCSI will call into this callback when user tries to set queue | 1214 | * SCSI will call into this callback when user tries to set queue |
@@ -1219,12 +1220,16 @@ void ata_scsi_slave_destroy(struct scsi_device *sdev) | |||
1219 | * RETURNS: | 1220 | * RETURNS: |
1220 | * Newly configured queue depth. | 1221 | * Newly configured queue depth. |
1221 | */ | 1222 | */ |
1222 | int ata_scsi_change_queue_depth(struct scsi_device *sdev, int queue_depth) | 1223 | int ata_scsi_change_queue_depth(struct scsi_device *sdev, int queue_depth, |
1224 | int reason) | ||
1223 | { | 1225 | { |
1224 | struct ata_port *ap = ata_shost_to_port(sdev->host); | 1226 | struct ata_port *ap = ata_shost_to_port(sdev->host); |
1225 | struct ata_device *dev; | 1227 | struct ata_device *dev; |
1226 | unsigned long flags; | 1228 | unsigned long flags; |
1227 | 1229 | ||
1230 | if (reason != SCSI_QDEPTH_DEFAULT) | ||
1231 | return -EOPNOTSUPP; | ||
1232 | |||
1228 | if (queue_depth < 1 || queue_depth == sdev->queue_depth) | 1233 | if (queue_depth < 1 || queue_depth == sdev->queue_depth) |
1229 | return sdev->queue_depth; | 1234 | return sdev->queue_depth; |
1230 | 1235 | ||