Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'writeback' of git://git.kernel.dk/linux-2.6-block

* 'writeback' of git://git.kernel.dk/linux-2.6-block:
writeback: pass in super_block to bdi_start_writeback()

+7 -4
+4 -2
fs/fs-writeback.c
··· 250 250 * completion. Caller need not hold sb s_umount semaphore. 251 251 * 252 252 */ 253 - void bdi_start_writeback(struct backing_dev_info *bdi, long nr_pages) 253 + void bdi_start_writeback(struct backing_dev_info *bdi, struct super_block *sb, 254 + long nr_pages) 254 255 { 255 256 struct wb_writeback_args args = { 257 + .sb = sb, 256 258 .sync_mode = WB_SYNC_NONE, 257 259 .nr_pages = nr_pages, 258 260 .range_cyclic = 1, ··· 1208 1206 nr_to_write = nr_dirty + nr_unstable + 1209 1207 (inodes_stat.nr_inodes - inodes_stat.nr_unused); 1210 1208 1211 - bdi_start_writeback(sb->s_bdi, nr_to_write); 1209 + bdi_start_writeback(sb->s_bdi, sb, nr_to_write); 1212 1210 } 1213 1211 EXPORT_SYMBOL(writeback_inodes_sb); 1214 1212
+2 -1
include/linux/backing-dev.h
··· 101 101 const char *fmt, ...); 102 102 int bdi_register_dev(struct backing_dev_info *bdi, dev_t dev); 103 103 void bdi_unregister(struct backing_dev_info *bdi); 104 - void bdi_start_writeback(struct backing_dev_info *bdi, long nr_pages); 104 + void bdi_start_writeback(struct backing_dev_info *bdi, struct super_block *sb, 105 + long nr_pages); 105 106 int bdi_writeback_task(struct bdi_writeback *wb); 106 107 int bdi_has_dirty_io(struct backing_dev_info *bdi); 107 108
+1 -1
mm/page-writeback.c
··· 596 596 (!laptop_mode && ((global_page_state(NR_FILE_DIRTY) 597 597 + global_page_state(NR_UNSTABLE_NFS)) 598 598 > background_thresh))) 599 - bdi_start_writeback(bdi, 0); 599 + bdi_start_writeback(bdi, NULL, 0); 600 600 } 601 601 602 602 void set_page_dirty_balance(struct page *page, int page_mkwrite)