forked from Minki/linux
[S390] Enhanced handling of failed termination requests.
In case a request timed out and termination did not work, the console was flooded with retry messages (every 1/10s). Now we use a 5s delay per retry and generate a more precise message. Signed-off-by: Horst Hummel <horst.hummel@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
5986b0e845
commit
29145a6c8c
@ -1264,15 +1264,21 @@ __dasd_check_expire(struct dasd_device * device)
|
||||
if (list_empty(&device->ccw_queue))
|
||||
return;
|
||||
cqr = list_entry(device->ccw_queue.next, struct dasd_ccw_req, list);
|
||||
if (cqr->status == DASD_CQR_IN_IO && cqr->expires != 0) {
|
||||
if (time_after_eq(jiffies, cqr->expires + cqr->starttime)) {
|
||||
if ((cqr->status == DASD_CQR_IN_IO && cqr->expires != 0) &&
|
||||
(time_after_eq(jiffies, cqr->expires + cqr->starttime))) {
|
||||
if (device->discipline->term_IO(cqr) != 0) {
|
||||
/* Hmpf, try again in 5 sec */
|
||||
dasd_set_timer(device, 5*HZ);
|
||||
DEV_MESSAGE(KERN_ERR, device,
|
||||
"internal error - timeout (%is) expired "
|
||||
"for cqr %p, termination failed, "
|
||||
"retrying in 5s",
|
||||
(cqr->expires/HZ), cqr);
|
||||
} else {
|
||||
DEV_MESSAGE(KERN_ERR, device,
|
||||
"internal error - timeout (%is) expired "
|
||||
"for cqr %p (%i retries left)",
|
||||
(cqr->expires/HZ), cqr, cqr->retries);
|
||||
if (device->discipline->term_IO(cqr) != 0)
|
||||
/* Hmpf, try again in 1/10 sec */
|
||||
dasd_set_timer(device, 10);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user