diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-11-18 09:34:35 -0200 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-11-18 09:34:35 -0200 |
commit | 15bd1cfb3055d866614cdaf38e43201936264e50 (patch) | |
tree | 020261b5a984684201a39e661934aa5dcdf82f83 /mm | |
parent | 9545eb61e5bb70055fd9358f25f95387f7398cba (diff) | |
parent | 019ceb7d5d252ce71001a157cf29f4ac28501b72 (diff) |
Merge branch 'for-linus' of git://git.kernel.dk/linux-block
* 'for-linus' of git://git.kernel.dk/linux-block:
block: add missed trace_block_plug
paride: fix potential information leak in pg_read()
bio: change some signed vars to unsigned
block: avoid unnecessary plug list flush
cciss: auto engage SCSI mid layer at driver load time
loop: cleanup set_status interface
include/linux/bio.h: use a static inline function for bio_integrity_clone()
loop: prevent information leak after failed read
block: Always check length of all iov entries in blk_rq_map_user_iov()
The Windows driver .inf disables ASPM on all cciss devices. Do the same.
backing-dev: ensure wakeup_timer is deleted
block: Revert "[SCSI] genhd: add a new attribute "alias" in gendisk"
Diffstat (limited to 'mm')
-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]); |