diff options
Diffstat (limited to 'block/ll_rw_blk.c')
| -rw-r--r-- | block/ll_rw_blk.c | 11 |
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); | |||
| 1712 | void blk_sync_queue(struct request_queue *q) | 1712 | void 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 | } |
| 1717 | EXPORT_SYMBOL(blk_sync_queue); | 1716 | EXPORT_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 | ||
| 3633 | EXPORT_SYMBOL(kblockd_schedule_work); | 3632 | EXPORT_SYMBOL(kblockd_schedule_work); |
| 3634 | 3633 | ||
| 3635 | void kblockd_flush(void) | 3634 | void kblockd_flush_work(struct work_struct *work) |
| 3636 | { | 3635 | { |
| 3637 | flush_workqueue(kblockd_workqueue); | 3636 | cancel_work_sync(work); |
| 3638 | } | 3637 | } |
| 3639 | EXPORT_SYMBOL(kblockd_flush); | 3638 | EXPORT_SYMBOL(kblockd_flush_work); |
| 3640 | 3639 | ||
| 3641 | int __init blk_dev_init(void) | 3640 | int __init blk_dev_init(void) |
| 3642 | { | 3641 | { |
