summaryrefslogtreecommitdiffstats
path: root/mm/slab.c
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2015-05-22 23:14:01 +0200
committerJens Axboe <axboe@fb.com>2015-06-02 16:33:37 +0200
commitdb125360409fc320790e0d38218bd7a3e9cd2552 (patch)
treea98cba26a1b4ef36b29c90e27cae8d6d42ae61d3 /mm/slab.c
parentwriteback: restructure try_writeback_inodes_sb[_nr]() (diff)
downloadlinux-db125360409fc320790e0d38218bd7a3e9cd2552.tar.xz
linux-db125360409fc320790e0d38218bd7a3e9cd2552.zip
writeback: make writeback initiation functions handle multiple bdi_writeback's
[try_]writeback_inodes_sb[_nr]() and sync_inodes_sb() currently only handle dirty inodes on the root wb (bdi_writeback) of the target bdi. This patch implements bdi_split_work_to_wbs() and use it to make these functions handle multiple wb's. bdi_split_work_to_wbs() takes a base wb_writeback_work and create clones of it and issue them to the wb's of the target bdi. The base work's nr_pages is distributed using wb_split_bdi_pages() - ie. according to each wb's write bandwidth's proportion in the bdi. Cloning a bdi involves memory allocation which may fail. In such cases, bdi_split_work_to_wbs() issues the base work directly and waits for its completion before proceeding to the next wb to guarantee forward progress and correctness under memory pressure. Signed-off-by: Tejun Heo <tj@kernel.org> Cc: Jens Axboe <axboe@kernel.dk> Cc: Jan Kara <jack@suse.cz> Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'mm/slab.c')
0 files changed, 0 insertions, 0 deletions