OSDN Git Service
(root)
/
uclinux-h8
/
linux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
028fed8
)
[S390] dasd: fix loop in request expiration handling
author
Stefan Haberland
<stefan.haberland@de.ibm.com>
Sat, 26 Jan 2008 13:11:26 +0000
(14:11 +0100)
committer
Martin Schwidefsky
<schwidefsky@de.ibm.com>
Sat, 26 Jan 2008 13:11:30 +0000
(14:11 +0100)
Add time to the 'expires' value to avoid a loop caused by the cqr
termination function
Signed-off-by: Stefan Haberland <stefan.haberland@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
drivers/s390/block/dasd.c
patch
|
blob
|
history
diff --git
a/drivers/s390/block/dasd.c
b/drivers/s390/block/dasd.c
index
db9193d
..
99268b9
100644
(file)
--- a/
drivers/s390/block/dasd.c
+++ b/
drivers/s390/block/dasd.c
@@
-1197,12
+1197,13
@@
static void __dasd_device_check_expire(struct dasd_device *device)
(time_after_eq(jiffies, cqr->expires + cqr->starttime))) {
if (device->discipline->term_IO(cqr) != 0) {
/* Hmpf, try again in 5 sec */
- dasd_device_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);
+ cqr->expires += 5*HZ;
+ dasd_device_set_timer(device, 5*HZ);
} else {
DEV_MESSAGE(KERN_ERR, device,
"internal error - timeout (%is) expired "