mirror of
https://github.com/SCST-project/scst.git
synced 2026-05-18 11:11:27 +00:00
A problem we are hitting is that we could hit a network issue
when a command/data is in the process of being sent. The snd buffer space goes to zero and sendpage returns -EAGAIN. We then wait for space to open. If space never opens then the cmd rsp timer fires and the session/connection is dropped. During that time we could try to send a nop as a ping, but it is stuck behind that other command that got EAGAIN and we are waiting for space to open to send them. We would expect the nop in timer to fire before the cmd rsp timer, but it cannot becuase the nop is sitting in the internal iscsi-scst queue. This patch just has us start the timer ont he nop in right away. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5091 d57e44dd-8a1f-0410-8b47-8ef2f437770f
This commit is contained in:
@@ -3818,6 +3818,14 @@ void iscsi_send_nop_in(struct iscsi_conn *conn)
|
||||
list_add_tail(&rsp->nop_req_list_entry, &conn->nop_req_list);
|
||||
spin_unlock_bh(&conn->nop_req_list_lock);
|
||||
|
||||
/*
|
||||
* Start NopRsp timer now to catch case where send buffer is full due
|
||||
* to connection being down, so this is never even sent to tcp layer.
|
||||
* This prevent us from having to wait for the CmdRsp timer which
|
||||
* is normally much longer.
|
||||
*/
|
||||
req_add_to_write_timeout_list(req);
|
||||
|
||||
out_err_free_req:
|
||||
req_cmnd_release(req);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user