|
@@ -2401,6 +2401,15 @@ fault:
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+static int
|
|
|
|
+iscsi_change_queue_depth(struct scsi_device *sdev, int depth)
|
|
|
|
+{
|
|
|
|
+ if (depth > ISCSI_MAX_CMD_PER_LUN)
|
|
|
|
+ depth = ISCSI_MAX_CMD_PER_LUN;
|
|
|
|
+ scsi_adjust_queue_depth(sdev, scsi_get_tag_type(sdev), depth);
|
|
|
|
+ return sdev->queue_depth;
|
|
|
|
+}
|
|
|
|
+
|
|
static int
|
|
static int
|
|
iscsi_pool_init(struct iscsi_queue *q, int max, void ***items, int item_size)
|
|
iscsi_pool_init(struct iscsi_queue *q, int max, void ***items, int item_size)
|
|
{
|
|
{
|
|
@@ -3260,13 +3269,14 @@ iscsi_r2tpool_free(struct iscsi_session *session)
|
|
static struct scsi_host_template iscsi_sht = {
|
|
static struct scsi_host_template iscsi_sht = {
|
|
.name = "iSCSI Initiator over TCP/IP, v."
|
|
.name = "iSCSI Initiator over TCP/IP, v."
|
|
ISCSI_VERSION_STR,
|
|
ISCSI_VERSION_STR,
|
|
- .queuecommand = iscsi_queuecommand,
|
|
|
|
|
|
+ .queuecommand = iscsi_queuecommand,
|
|
|
|
+ .change_queue_depth = iscsi_change_queue_depth,
|
|
.can_queue = ISCSI_XMIT_CMDS_MAX - 1,
|
|
.can_queue = ISCSI_XMIT_CMDS_MAX - 1,
|
|
.sg_tablesize = ISCSI_SG_TABLESIZE,
|
|
.sg_tablesize = ISCSI_SG_TABLESIZE,
|
|
- .cmd_per_lun = ISCSI_CMD_PER_LUN,
|
|
|
|
- .eh_abort_handler = iscsi_eh_abort,
|
|
|
|
- .eh_host_reset_handler = iscsi_eh_host_reset,
|
|
|
|
- .use_clustering = DISABLE_CLUSTERING,
|
|
|
|
|
|
+ .cmd_per_lun = ISCSI_DEF_CMD_PER_LUN,
|
|
|
|
+ .eh_abort_handler = iscsi_eh_abort,
|
|
|
|
+ .eh_host_reset_handler = iscsi_eh_host_reset,
|
|
|
|
+ .use_clustering = DISABLE_CLUSTERING,
|
|
.proc_name = "iscsi_tcp",
|
|
.proc_name = "iscsi_tcp",
|
|
.this_id = -1,
|
|
.this_id = -1,
|
|
};
|
|
};
|