[SCSI] libiscsi: remove unneeded queue work when max_cmdsn is increased
iscsi_queuecommand will only take in commands that can fit in the current window. So, if a command is on the cmdqueue then it can fit in the current window. If a command is on the mgmtqueue, then we are setting the immediate bit so they will also fit in the window. As a result, we never need to to do a iscsi_conn_queue_work when the maxCmdSn is increased. What should happen is that a command will complete the window will be increased, then the scsi layer will send us more commands by running the scsi_device queues. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
This commit is contained in:
Родитель
659743b02c
Коммит
46a84c6516
|
@ -110,16 +110,8 @@ static void __iscsi_update_cmdsn(struct iscsi_session *session,
|
|||
session->exp_cmdsn = exp_cmdsn;
|
||||
|
||||
if (max_cmdsn != session->max_cmdsn &&
|
||||
!iscsi_sna_lt(max_cmdsn, session->max_cmdsn)) {
|
||||
!iscsi_sna_lt(max_cmdsn, session->max_cmdsn))
|
||||
session->max_cmdsn = max_cmdsn;
|
||||
/*
|
||||
* if the window closed with IO queued, then kick the
|
||||
* xmit thread
|
||||
*/
|
||||
if (!list_empty(&session->leadconn->cmdqueue) ||
|
||||
!list_empty(&session->leadconn->mgmtqueue))
|
||||
iscsi_conn_queue_work(session->leadconn);
|
||||
}
|
||||
}
|
||||
|
||||
void iscsi_update_cmdsn(struct iscsi_session *session, struct iscsi_nopin *hdr)
|
||||
|
|
Загрузка…
Ссылка в новой задаче