diff options
author | Jens Axboe <axboe@fb.com> | 2014-04-08 17:17:40 +0200 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2014-04-09 18:17:03 +0200 |
commit | 8ab14595b6dffecea264dcca2d6d9eea7c59273a (patch) | |
tree | da3b6e2996686925d6163a9e95863586586cda15 | |
parent | block: remove 'q' parameter from kblockd_schedule_*_work() (diff) | |
download | linux-8ab14595b6dffecea264dcca2d6d9eea7c59273a.tar.xz linux-8ab14595b6dffecea264dcca2d6d9eea7c59273a.zip |
block: add kblockd_schedule_delayed_work_on()
Same function as kblockd_schedule_delayed_work(), but allow the
caller to pass in a CPU that the work should be executed on. This
just directly extends and maps into the workqueue API, and will
be used to make the blk-mq mappings more strict.
Signed-off-by: Jens Axboe <axboe@fb.com>
-rw-r--r-- | block/blk-core.c | 7 | ||||
-rw-r--r-- | include/linux/blkdev.h | 1 |
2 files changed, 8 insertions, 0 deletions
diff --git a/block/blk-core.c b/block/blk-core.c index f7d2c3335dfa..7af4a4898dcb 100644 --- a/block/blk-core.c +++ b/block/blk-core.c @@ -2917,6 +2917,13 @@ int kblockd_schedule_delayed_work(struct delayed_work *dwork, } EXPORT_SYMBOL(kblockd_schedule_delayed_work); +int kblockd_schedule_delayed_work_on(int cpu, struct delayed_work *dwork, + unsigned long delay) +{ + return queue_delayed_work_on(cpu, kblockd_workqueue, dwork, delay); +} +EXPORT_SYMBOL(kblockd_schedule_delayed_work_on); + #define PLUG_MAGIC 0x91827364 /** diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 2425945d36ab..5a31307c5ded 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h @@ -1361,6 +1361,7 @@ static inline void put_dev_sector(Sector p) struct work_struct; int kblockd_schedule_work(struct work_struct *work); int kblockd_schedule_delayed_work(struct delayed_work *dwork, unsigned long delay); +int kblockd_schedule_delayed_work_on(int cpu, struct delayed_work *dwork, unsigned long delay); #ifdef CONFIG_BLK_CGROUP /* |