Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 96518
b: refs/heads/master
c: 4cf1043
h: refs/heads/master
v: v3
  • Loading branch information
Mike Christie authored and James Bottomley committed May 8, 2008
1 parent 86234b1 commit 8a2abee
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 9 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: a85591fd0baf4ed3f03ee1aaac6a985e400cf089
refs/heads/master: 4cf1043593db6a337f10e006c23c69e5fc93e722
17 changes: 9 additions & 8 deletions trunk/drivers/scsi/libiscsi.c
Original file line number Diff line number Diff line change
Expand Up @@ -1453,19 +1453,20 @@ static void iscsi_check_transport_timeouts(unsigned long data)
{
struct iscsi_conn *conn = (struct iscsi_conn *)data;
struct iscsi_session *session = conn->session;
unsigned long timeout, next_timeout = 0, last_recv;
unsigned long recv_timeout, next_timeout = 0, last_recv;

spin_lock(&session->lock);
if (session->state != ISCSI_STATE_LOGGED_IN)
goto done;

timeout = conn->recv_timeout;
if (!timeout)
recv_timeout = conn->recv_timeout;
if (!recv_timeout)
goto done;

timeout *= HZ;
recv_timeout *= HZ;
last_recv = conn->last_recv;
if (time_before_eq(last_recv + timeout + (conn->ping_timeout * HZ),
if (conn->ping_mtask &&
time_before_eq(conn->last_ping + (conn->ping_timeout * HZ),
jiffies)) {
iscsi_conn_printk(KERN_ERR, conn, "ping timeout of %d secs "
"expired, last rx %lu, last ping %lu, "
Expand All @@ -1476,15 +1477,15 @@ static void iscsi_check_transport_timeouts(unsigned long data)
return;
}

if (time_before_eq(last_recv + timeout, jiffies)) {
if (time_before_eq(last_recv + recv_timeout, jiffies)) {
if (time_before_eq(conn->last_ping, last_recv)) {
/* send a ping to try to provoke some traffic */
debug_scsi("Sending nopout as ping on conn %p\n", conn);
iscsi_send_nopout(conn, NULL);
}
next_timeout = last_recv + timeout + (conn->ping_timeout * HZ);
next_timeout = conn->last_ping + (conn->ping_timeout * HZ);
} else
next_timeout = last_recv + timeout;
next_timeout = last_recv + recv_timeout;

debug_scsi("Setting next tmo %lu\n", next_timeout);
mod_timer(&conn->transport_timer, next_timeout);
Expand Down

0 comments on commit 8a2abee

Please sign in to comment.