diff options
Diffstat (limited to 'mm/backing-dev.c')
| -rw-r--r-- | mm/backing-dev.c | 8 | 
1 files changed, 8 insertions, 0 deletions
diff --git a/mm/backing-dev.c b/mm/backing-dev.c index a0860640378..71034f41a2b 100644 --- a/mm/backing-dev.c +++ b/mm/backing-dev.c @@ -724,6 +724,14 @@ void bdi_destroy(struct backing_dev_info *bdi)  	bdi_unregister(bdi); +	/* +	 * If bdi_unregister() had already been called earlier, the +	 * wakeup_timer could still be armed because bdi_prune_sb() +	 * can race with the bdi_wakeup_thread_delayed() calls from +	 * __mark_inode_dirty(). +	 */ +	del_timer_sync(&bdi->wb.wakeup_timer); +  	for (i = 0; i < NR_BDI_STAT_ITEMS; i++)  		percpu_counter_destroy(&bdi->bdi_stat[i]);  |