diff options
| author | Cheng Renquan <crquan@gmail.com> | 2008-12-03 06:41:39 -0500 |
|---|---|---|
| committer | Jens Axboe <jens.axboe@oracle.com> | 2008-12-29 02:28:44 -0500 |
| commit | 64d01dc9e1927e6535627d73f2336c75d1dd3fe2 (patch) | |
| tree | 1813333970f6ed1c1959edfc2842b00ed2b3a70e | |
| parent | 08bafc0341f2f7920e9045bc32c40299cac8c21b (diff) | |
block: use cancel_work_sync() instead of kblockd_flush_work()
After many improvements on kblockd_flush_work, it is now identical to
cancel_work_sync, so a direct call to cancel_work_sync is suggested.
The only difference is that cancel_work_sync is a GPL symbol,
so no non-GPL modules anymore.
Signed-off-by: Cheng Renquan <crquan@gmail.com>
Cc: Jens Axboe <jens.axboe@oracle.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
| -rw-r--r-- | block/as-iosched.c | 2 | ||||
| -rw-r--r-- | block/blk-core.c | 8 | ||||
| -rw-r--r-- | block/cfq-iosched.c | 2 | ||||
| -rw-r--r-- | include/linux/blkdev.h | 1 |
4 files changed, 3 insertions, 10 deletions
diff --git a/block/as-iosched.c b/block/as-iosched.c index 71f0abb219ee..802b5d0d8536 100644 --- a/block/as-iosched.c +++ b/block/as-iosched.c | |||
| @@ -1344,7 +1344,7 @@ static void as_exit_queue(elevator_t *e) | |||
| 1344 | struct as_data *ad = e->elevator_data; | 1344 | struct as_data *ad = e->elevator_data; |
| 1345 | 1345 | ||
| 1346 | del_timer_sync(&ad->antic_timer); | 1346 | del_timer_sync(&ad->antic_timer); |
| 1347 | kblockd_flush_work(&ad->antic_work); | 1347 | cancel_work_sync(&ad->antic_work); |
| 1348 | 1348 | ||
| 1349 | BUG_ON(!list_empty(&ad->fifo_list[REQ_SYNC])); | 1349 | BUG_ON(!list_empty(&ad->fifo_list[REQ_SYNC])); |
| 1350 | BUG_ON(!list_empty(&ad->fifo_list[REQ_ASYNC])); | 1350 | BUG_ON(!list_empty(&ad->fifo_list[REQ_ASYNC])); |
diff --git a/block/blk-core.c b/block/blk-core.c index 20e1724ccb4c..2fdcd0cff57f 100644 --- a/block/blk-core.c +++ b/block/blk-core.c | |||
| @@ -408,7 +408,7 @@ void blk_sync_queue(struct request_queue *q) | |||
| 408 | { | 408 | { |
| 409 | del_timer_sync(&q->unplug_timer); | 409 | del_timer_sync(&q->unplug_timer); |
| 410 | del_timer_sync(&q->timeout); | 410 | del_timer_sync(&q->timeout); |
| 411 | kblockd_flush_work(&q->unplug_work); | 411 | cancel_work_sync(&q->unplug_work); |
| 412 | } | 412 | } |
| 413 | EXPORT_SYMBOL(blk_sync_queue); | 413 | EXPORT_SYMBOL(blk_sync_queue); |
| 414 | 414 | ||
| @@ -2147,12 +2147,6 @@ int kblockd_schedule_work(struct request_queue *q, struct work_struct *work) | |||
| 2147 | } | 2147 | } |
| 2148 | EXPORT_SYMBOL(kblockd_schedule_work); | 2148 | EXPORT_SYMBOL(kblockd_schedule_work); |
| 2149 | 2149 | ||
| 2150 | void kblockd_flush_work(struct work_struct *work) | ||
| 2151 | { | ||
| 2152 | cancel_work_sync(work); | ||
| 2153 | } | ||
| 2154 | EXPORT_SYMBOL(kblockd_flush_work); | ||
| 2155 | |||
| 2156 | int __init blk_dev_init(void) | 2150 | int __init blk_dev_init(void) |
| 2157 | { | 2151 | { |
| 2158 | kblockd_workqueue = create_workqueue("kblockd"); | 2152 | kblockd_workqueue = create_workqueue("kblockd"); |
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c index 6a062eebbd15..a2bfec7d6b36 100644 --- a/block/cfq-iosched.c +++ b/block/cfq-iosched.c | |||
| @@ -2160,7 +2160,7 @@ out_cont: | |||
| 2160 | static void cfq_shutdown_timer_wq(struct cfq_data *cfqd) | 2160 | static void cfq_shutdown_timer_wq(struct cfq_data *cfqd) |
| 2161 | { | 2161 | { |
| 2162 | del_timer_sync(&cfqd->idle_slice_timer); | 2162 | del_timer_sync(&cfqd->idle_slice_timer); |
| 2163 | kblockd_flush_work(&cfqd->unplug_work); | 2163 | cancel_work_sync(&cfqd->unplug_work); |
| 2164 | } | 2164 | } |
| 2165 | 2165 | ||
| 2166 | static void cfq_put_async_queues(struct cfq_data *cfqd) | 2166 | static void cfq_put_async_queues(struct cfq_data *cfqd) |
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 482e9600f7a2..e9bb73ff1d64 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h | |||
| @@ -978,7 +978,6 @@ static inline void put_dev_sector(Sector p) | |||
| 978 | 978 | ||
| 979 | struct work_struct; | 979 | struct work_struct; |
| 980 | int kblockd_schedule_work(struct request_queue *q, struct work_struct *work); | 980 | int kblockd_schedule_work(struct request_queue *q, struct work_struct *work); |
| 981 | void kblockd_flush_work(struct work_struct *work); | ||
| 982 | 981 | ||
| 983 | #define MODULE_ALIAS_BLOCKDEV(major,minor) \ | 982 | #define MODULE_ALIAS_BLOCKDEV(major,minor) \ |
| 984 | MODULE_ALIAS("block-major-" __stringify(major) "-" __stringify(minor)) | 983 | MODULE_ALIAS("block-major-" __stringify(major) "-" __stringify(minor)) |
