kblockd: use flush_work
Switch the kblockd flushing from a global flush to a more specific flush_work(). (akpm: bypassed maintainers, sorry. There are other patches which depend on this) Cc: "Maciej W. Rozycki" <macro@linux-mips.org> Cc: David Howells <dhowells@redhat.com> Cc: Jens Axboe <axboe@suse.de> Cc: Nick Piggin <nickpiggin@yahoo.com.au> Cc: Oleg Nesterov <oleg@tv-sign.ru> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
a9df62c758
Коммит
19a75d83ff
|
@ -1306,7 +1306,7 @@ static void as_exit_queue(elevator_t *e)
|
|||
struct as_data *ad = e->elevator_data;
|
||||
|
||||
del_timer_sync(&ad->antic_timer);
|
||||
kblockd_flush();
|
||||
kblockd_flush_work(&ad->antic_work);
|
||||
|
||||
BUG_ON(!list_empty(&ad->fifo_list[REQ_SYNC]));
|
||||
BUG_ON(!list_empty(&ad->fifo_list[REQ_ASYNC]));
|
||||
|
|
|
@ -1712,7 +1712,6 @@ EXPORT_SYMBOL(blk_stop_queue);
|
|||
void blk_sync_queue(struct request_queue *q)
|
||||
{
|
||||
del_timer_sync(&q->unplug_timer);
|
||||
kblockd_flush();
|
||||
}
|
||||
EXPORT_SYMBOL(blk_sync_queue);
|
||||
|
||||
|
@ -3632,11 +3631,11 @@ int kblockd_schedule_work(struct work_struct *work)
|
|||
|
||||
EXPORT_SYMBOL(kblockd_schedule_work);
|
||||
|
||||
void kblockd_flush(void)
|
||||
void kblockd_flush_work(struct work_struct *work)
|
||||
{
|
||||
flush_workqueue(kblockd_workqueue);
|
||||
flush_work(kblockd_workqueue, work);
|
||||
}
|
||||
EXPORT_SYMBOL(kblockd_flush);
|
||||
EXPORT_SYMBOL(kblockd_flush_work);
|
||||
|
||||
int __init blk_dev_init(void)
|
||||
{
|
||||
|
|
|
@ -854,7 +854,7 @@ static inline void put_dev_sector(Sector p)
|
|||
|
||||
struct work_struct;
|
||||
int kblockd_schedule_work(struct work_struct *work);
|
||||
void kblockd_flush(void);
|
||||
void kblockd_flush_work(struct work_struct *work);
|
||||
|
||||
#define MODULE_ALIAS_BLOCKDEV(major,minor) \
|
||||
MODULE_ALIAS("block-major-" __stringify(major) "-" __stringify(minor))
|
||||
|
|
Загрузка…
Ссылка в новой задаче