summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Höppner <hoeppner@linux.ibm.com>2019-06-27 08:33:17 -0400
committerVasily Gorbik <gor@linux.ibm.com>2019-07-11 14:39:54 -0400
commitbcf36768ea688e926b04639c88c77d8caea3b736 (patch)
treeb82414bf752734689a3ce9a8396e33addcf117f7
parentd7a4434d6013c750f6c180f9678a870abc21993b (diff)
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: Jan Höppner <hoeppner@linux.ibm.com> Reviewed-by: Stefan Haberland <sth@linux.ibm.com> Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
-rw-r--r--drivers/s390/block/dasd.c9
-rw-r--r--drivers/s390/block/dasd_int.h1
2 files changed, 10 insertions, 0 deletions
diff --git a/drivers/s390/block/dasd.c b/drivers/s390/block/dasd.c
index 1c7da4342461..065f7b0ff0dc 100644
--- a/drivers/s390/block/dasd.c
+++ b/drivers/s390/block/dasd.c
@@ -2523,6 +2523,15 @@ int dasd_sleep_on_queue(struct list_head *ccw_queue)
2523EXPORT_SYMBOL(dasd_sleep_on_queue); 2523EXPORT_SYMBOL(dasd_sleep_on_queue);
2524 2524
2525/* 2525/*
2526 * Start requests from a ccw_queue and wait interruptible for their completion.
2527 */
2528int dasd_sleep_on_queue_interruptible(struct list_head *ccw_queue)
2529{
2530 return _dasd_sleep_on_queue(ccw_queue, 1);
2531}
2532EXPORT_SYMBOL(dasd_sleep_on_queue_interruptible);
2533
2534/*
2526 * Queue a request to the tail of the device ccw_queue and wait 2535 * Queue a request to the tail of the device ccw_queue and wait
2527 * interruptible for it's completion. 2536 * interruptible for it's completion.
2528 */ 2537 */
diff --git a/drivers/s390/block/dasd_int.h b/drivers/s390/block/dasd_int.h
index 3f7c3b9dcae6..9a8ef372535b 100644
--- a/drivers/s390/block/dasd_int.h
+++ b/drivers/s390/block/dasd_int.h
@@ -748,6 +748,7 @@ void dasd_schedule_block_bh(struct dasd_block *);
748int dasd_sleep_on(struct dasd_ccw_req *); 748int dasd_sleep_on(struct dasd_ccw_req *);
749int dasd_sleep_on_queue(struct list_head *); 749int dasd_sleep_on_queue(struct list_head *);
750int dasd_sleep_on_immediatly(struct dasd_ccw_req *); 750int dasd_sleep_on_immediatly(struct dasd_ccw_req *);
751int dasd_sleep_on_queue_interruptible(struct list_head *);
751int dasd_sleep_on_interruptible(struct dasd_ccw_req *); 752int dasd_sleep_on_interruptible(struct dasd_ccw_req *);
752void dasd_device_set_timer(struct dasd_device *, int); 753void dasd_device_set_timer(struct dasd_device *, int);
753void dasd_device_clear_timer(struct dasd_device *); 754void dasd_device_clear_timer(struct dasd_device *);