mirror of https://gitee.com/openkylin/linux.git
mm: make generic_writepages() use plugging
This recovers a performance regression caused by the removal of the per-device plugging. Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
This commit is contained in:
parent
167400d340
commit
9b6096a65f
|
@ -1039,11 +1039,17 @@ static int __writepage(struct page *page, struct writeback_control *wbc,
|
|||
int generic_writepages(struct address_space *mapping,
|
||||
struct writeback_control *wbc)
|
||||
{
|
||||
struct blk_plug plug;
|
||||
int ret;
|
||||
|
||||
/* deal with chardevs and other special file */
|
||||
if (!mapping->a_ops->writepage)
|
||||
return 0;
|
||||
|
||||
return write_cache_pages(mapping, wbc, __writepage, mapping);
|
||||
blk_start_plug(&plug);
|
||||
ret = write_cache_pages(mapping, wbc, __writepage, mapping);
|
||||
blk_finish_plug(&plug);
|
||||
return ret;
|
||||
}
|
||||
|
||||
EXPORT_SYMBOL(generic_writepages);
|
||||
|
|
Loading…
Reference in New Issue