diff options
author | Jan Höppner <hoeppner@linux.ibm.com> | 2019-06-27 08:33:17 -0400 |
---|---|---|
committer | Vasily Gorbik <gor@linux.ibm.com> | 2019-07-11 14:39:54 -0400 |
commit | bcf36768ea688e926b04639c88c77d8caea3b736 (patch) | |
tree | b82414bf752734689a3ce9a8396e33addcf117f7 | |
parent | d7a4434d6013c750f6c180f9678a870abc21993b (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.c | 9 | ||||
-rw-r--r-- | drivers/s390/block/dasd_int.h | 1 |
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) | |||
2523 | EXPORT_SYMBOL(dasd_sleep_on_queue); | 2523 | EXPORT_SYMBOL(dasd_sleep_on_queue); |
2524 | 2524 | ||
2525 | /* | 2525 | /* |
2526 | * Start requests from a ccw_queue and wait interruptible for their completion. | ||
2527 | */ | ||
2528 | int dasd_sleep_on_queue_interruptible(struct list_head *ccw_queue) | ||
2529 | { | ||
2530 | return _dasd_sleep_on_queue(ccw_queue, 1); | ||
2531 | } | ||
2532 | EXPORT_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 *); | |||
748 | int dasd_sleep_on(struct dasd_ccw_req *); | 748 | int dasd_sleep_on(struct dasd_ccw_req *); |
749 | int dasd_sleep_on_queue(struct list_head *); | 749 | int dasd_sleep_on_queue(struct list_head *); |
750 | int dasd_sleep_on_immediatly(struct dasd_ccw_req *); | 750 | int dasd_sleep_on_immediatly(struct dasd_ccw_req *); |
751 | int dasd_sleep_on_queue_interruptible(struct list_head *); | ||
751 | int dasd_sleep_on_interruptible(struct dasd_ccw_req *); | 752 | int dasd_sleep_on_interruptible(struct dasd_ccw_req *); |
752 | void dasd_device_set_timer(struct dasd_device *, int); | 753 | void dasd_device_set_timer(struct dasd_device *, int); |
753 | void dasd_device_clear_timer(struct dasd_device *); | 754 | void dasd_device_clear_timer(struct dasd_device *); |