diff options
author | Stefan Haberland <stefan.haberland@de.ibm.com> | 2013-07-30 12:49:43 +0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2013-07-30 18:17:25 +0400 |
commit | 0e003b709ef9f4c43f6338834526c3556ea71b19 (patch) | |
tree | 0cbbf9074ebc812dbcab30c3133153657e9fd3aa /drivers/s390/block | |
parent | 198b1bf8c3a06de42a88ad7f9d664f18d740a418 (diff) | |
download | linux-0e003b709ef9f4c43f6338834526c3556ea71b19.tar.xz |
s390/dasd: fix hanging devices after path events
The processing of the dasd_block tasklet may have been interrupted
by a path event.
Restart the dasd tasklets in sleep_on_immediately function.
Signed-off-by: Stefan Haberland <stefan.haberland@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390/block')
-rw-r--r-- | drivers/s390/block/dasd.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/s390/block/dasd.c b/drivers/s390/block/dasd.c index 17150a778984..451bf99582ff 100644 --- a/drivers/s390/block/dasd.c +++ b/drivers/s390/block/dasd.c @@ -2392,6 +2392,12 @@ int dasd_sleep_on_immediatly(struct dasd_ccw_req *cqr) rc = cqr->intrc; else rc = -EIO; + + /* kick tasklets */ + dasd_schedule_device_bh(device); + if (device->block) + dasd_schedule_block_bh(device->block); + return rc; } |