2.6.25-stable review patch. If anyone has any objections, please let us
know.
------------------
From: Mike Christie <michaelc@cs.wisc.edu>
commit c8611f975403dd20e6503aff8aded5dcb718f75b upstream
If the ping tmo is longer than the recv tmo then we could miss a window
where we were supposed to check the recv tmo. This happens because
the ping code will set the next timeout for the ping timeout, and if the
ping executes quickly there will be a long chunk of time before the
timer wakes up again.
This patch has the ping processing code kick off a recv
tmo check when getting a nop in response to our ping.
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/scsi/libiscsi.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
--- a/drivers/scsi/libiscsi.c
+++ b/drivers/scsi/libiscsi.c
@@ -635,7 +635,9 @@ static int __iscsi_complete_pdu(struct i
if (iscsi_recv_pdu(conn->cls_conn, hdr, data,
datalen))
rc = ISCSI_ERR_CONN_FAILED;
- }
+ } else
+ mod_timer(&conn->transport_timer,
+ jiffies + conn->recv_timeout);
iscsi_free_mgmt_task(conn, mtask);
break;
default:
@@ -1378,11 +1380,9 @@ static void iscsi_check_transport_timeou
}
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);
- }
+ /* 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 = conn->last_ping + (conn->ping_timeout * HZ);
} else
next_timeout = last_recv + recv_timeout;
--
--
| Ryan Hope | reiser4 for 2.6.27-rc1 |
| Ingo Molnar | Re: 2.6.24-rc6-mm1 |
| Tejun Heo | [PATCHSET] CUSE: implement CUSE |
| Peter Zijlstra | Re: 2.6.24-rc8-mm1 (BUG: sched_rt) |
git: | |
| Shawn O. Pearce | Re: [PATCH/POLL] git-format-patch: the default suffix is now .patch, not .txt |
| Jakub Narebski | Re: What's cooking in git.git (topics) |
| Junio C Hamano | Maintaining "needswork" section of "What's (not) cooking" |
| Matthias Lederhofer | [PATCH] prune-packed: new option --min-age=N |
| Theo de Raadt | That whole "Linux stealing our code" thing |
| Karthik Kumar | Re: Real men don't attack straw men |
| Khalid Schofield | Configuring sendmail openbsd 4.2 |
| Ray Percival | Re: Real men don't attack straw men |
| RW | Re: forcefsck on booting stage |
| Vladimir Terziev | Video memory as swap under FreeBSD |
| Ivan Voras | Progress for 7.0 - the "what's cooking" page |
| Pietro Cerutti | Re: [patch] enhance powerd(8) to handle max temperature |
