Commit bcf36768 authored by Jan Höppner's avatar Jan Höppner Committed by Vasily Gorbik

s390/dasd: Add dasd_sleep_on_queue_interruptible()

There is dasd_sleep_on() and dasd_sleep_on_interruptible() to start CCW
requests uninterruptible and interruptible. However, there is only
dasd_sleep_on_queue() to start requests from CCW queues uninterruptible.

Add dasd_sleep_on_queue_interruptible() to provide a way to start
requests from CCW queues interruptible. _dasd_sleep_on_queue() already
provides this functionality.
Signed-off-by: default avatarJan Höppner <hoeppner@linux.ibm.com>
Reviewed-by: default avatarStefan Haberland <sth@linux.ibm.com>
Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
parent d7a4434d
...@@ -2522,6 +2522,15 @@ int dasd_sleep_on_queue(struct list_head *ccw_queue) ...@@ -2522,6 +2522,15 @@ int dasd_sleep_on_queue(struct list_head *ccw_queue)
} }
EXPORT_SYMBOL(dasd_sleep_on_queue); EXPORT_SYMBOL(dasd_sleep_on_queue);
/*
* Start requests from a ccw_queue and wait interruptible for their completion.
*/
int dasd_sleep_on_queue_interruptible(struct list_head *ccw_queue)
{
return _dasd_sleep_on_queue(ccw_queue, 1);
}
EXPORT_SYMBOL(dasd_sleep_on_queue_interruptible);
/* /*
* Queue a request to the tail of the device ccw_queue and wait * Queue a request to the tail of the device ccw_queue and wait
* interruptible for it's completion. * interruptible for it's completion.
......
...@@ -748,6 +748,7 @@ void dasd_schedule_block_bh(struct dasd_block *); ...@@ -748,6 +748,7 @@ void dasd_schedule_block_bh(struct dasd_block *);
int dasd_sleep_on(struct dasd_ccw_req *); int dasd_sleep_on(struct dasd_ccw_req *);
int dasd_sleep_on_queue(struct list_head *); int dasd_sleep_on_queue(struct list_head *);
int dasd_sleep_on_immediatly(struct dasd_ccw_req *); int dasd_sleep_on_immediatly(struct dasd_ccw_req *);
int dasd_sleep_on_queue_interruptible(struct list_head *);
int dasd_sleep_on_interruptible(struct dasd_ccw_req *); int dasd_sleep_on_interruptible(struct dasd_ccw_req *);
void dasd_device_set_timer(struct dasd_device *, int); void dasd_device_set_timer(struct dasd_device *, int);
void dasd_device_clear_timer(struct dasd_device *); void dasd_device_clear_timer(struct dasd_device *);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment