Skip to content

Commit

Permalink
[SCSI] libfc: convert to scsi_track_queue_full
Browse files Browse the repository at this point in the history
This converts the libfc using scsi_track_queue_full to
track the queue full from the change_queue_depth callback.

Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: Vasu Dev <vasu.dev@intel.com>
Acked-by: Robert Love <robert.w.love@intel.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
  • Loading branch information
Mike Christie authored and James Bottomley committed Dec 4, 2009
1 parent 42a6a91 commit 5c20848
Showing 1 changed file with 9 additions and 18 deletions.
27 changes: 9 additions & 18 deletions drivers/scsi/libfc/fc_fcp.c
Original file line number Diff line number Diff line change
Expand Up @@ -1815,21 +1815,6 @@ static void fc_io_compl(struct fc_fcp_pkt *fsp)
sc_cmd->result = DID_OK << 16;
if (fsp->scsi_resid)
CMD_RESID_LEN(sc_cmd) = fsp->scsi_resid;
} else if (fsp->cdb_status == QUEUE_FULL) {
struct scsi_device *tmp_sdev;
struct scsi_device *sdev = sc_cmd->device;

shost_for_each_device(tmp_sdev, sdev->host) {
if (tmp_sdev->id != sdev->id)
continue;

if (tmp_sdev->queue_depth > 1) {
scsi_track_queue_full(tmp_sdev,
tmp_sdev->
queue_depth - 1);
}
}
sc_cmd->result = (DID_OK << 16) | fsp->cdb_status;
} else {
/*
* transport level I/O was ok but scsi
Expand Down Expand Up @@ -2066,10 +2051,16 @@ EXPORT_SYMBOL(fc_slave_alloc);

int fc_change_queue_depth(struct scsi_device *sdev, int qdepth, int reason)
{
if (reason != SCSI_QDEPTH_DEFAULT)
switch (reason) {
case SCSI_QDEPTH_DEFAULT:
scsi_adjust_queue_depth(sdev, scsi_get_tag_type(sdev), qdepth);
break;
case SCSI_QDEPTH_QFULL:
scsi_track_queue_full(sdev, qdepth);
break;
default:
return -EOPNOTSUPP;

scsi_adjust_queue_depth(sdev, scsi_get_tag_type(sdev), qdepth);
}
return sdev->queue_depth;
}
EXPORT_SYMBOL(fc_change_queue_depth);
Expand Down

0 comments on commit 5c20848

Please sign in to comment.