aboutsummaryrefslogtreecommitdiffstats
path: root/block/ll_rw_blk.c
diff options
context:
space:
mode:
Diffstat (limited to 'block/ll_rw_blk.c')
-rw-r--r--block/ll_rw_blk.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/block/ll_rw_blk.c b/block/ll_rw_blk.c
index d99d402953a3..17e188973428 100644
--- a/block/ll_rw_blk.c
+++ b/block/ll_rw_blk.c
@@ -1704,7 +1704,7 @@ EXPORT_SYMBOL(blk_stop_queue);
1704 * on a queue, such as calling the unplug function after a timeout. 1704 * on a queue, such as calling the unplug function after a timeout.
1705 * A block device may call blk_sync_queue to ensure that any 1705 * A block device may call blk_sync_queue to ensure that any
1706 * such activity is cancelled, thus allowing it to release resources 1706 * such activity is cancelled, thus allowing it to release resources
1707 * the the callbacks might use. The caller must already have made sure 1707 * that the callbacks might use. The caller must already have made sure
1708 * that its ->make_request_fn will not re-add plugging prior to calling 1708 * that its ->make_request_fn will not re-add plugging prior to calling
1709 * this function. 1709 * this function.
1710 * 1710 *
@@ -1712,7 +1712,6 @@ EXPORT_SYMBOL(blk_stop_queue);
1712void blk_sync_queue(struct request_queue *q) 1712void blk_sync_queue(struct request_queue *q)
1713{ 1713{
1714 del_timer_sync(&q->unplug_timer); 1714 del_timer_sync(&q->unplug_timer);
1715 kblockd_flush();
1716} 1715}
1717EXPORT_SYMBOL(blk_sync_queue); 1716EXPORT_SYMBOL(blk_sync_queue);
1718 1717
@@ -3508,7 +3507,7 @@ static int blk_cpu_notify(struct notifier_block *self, unsigned long action,
3508 * If a CPU goes away, splice its entries to the current CPU 3507 * If a CPU goes away, splice its entries to the current CPU
3509 * and trigger a run of the softirq 3508 * and trigger a run of the softirq
3510 */ 3509 */
3511 if (action == CPU_DEAD) { 3510 if (action == CPU_DEAD || action == CPU_DEAD_FROZEN) {
3512 int cpu = (unsigned long) hcpu; 3511 int cpu = (unsigned long) hcpu;
3513 3512
3514 local_irq_disable(); 3513 local_irq_disable();
@@ -3632,11 +3631,11 @@ int kblockd_schedule_work(struct work_struct *work)
3632 3631
3633EXPORT_SYMBOL(kblockd_schedule_work); 3632EXPORT_SYMBOL(kblockd_schedule_work);
3634 3633
3635void kblockd_flush(void) 3634void kblockd_flush_work(struct work_struct *work)
3636{ 3635{
3637 flush_workqueue(kblockd_workqueue); 3636 cancel_work_sync(work);
3638} 3637}
3639EXPORT_SYMBOL(kblockd_flush); 3638EXPORT_SYMBOL(kblockd_flush_work);
3640 3639
3641int __init blk_dev_init(void) 3640int __init blk_dev_init(void)
3642{ 3641{