[SCSI] libiscsi: remove unneeded queue work when max_cmdsn is increased
authorMike Christie <michaelc@cs.wisc.edu>
Fri, 7 Feb 2014 06:41:39 +0000 (00:41 -0600)
committerJames Bottomley <JBottomley@Parallels.com>
Sat, 15 Mar 2014 17:19:18 +0000 (10:19 -0700)
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>
drivers/scsi/libiscsi.c

index 8738b98..5b8605c 100644 (file)
@@ -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)