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,
|
int generic_writepages(struct address_space *mapping,
|
||||||
struct writeback_control *wbc)
|
struct writeback_control *wbc)
|
||||||
{
|
{
|
||||||
|
struct blk_plug plug;
|
||||||
|
int ret;
|
||||||
|
|
||||||
/* deal with chardevs and other special file */
|
/* deal with chardevs and other special file */
|
||||||
if (!mapping->a_ops->writepage)
|
if (!mapping->a_ops->writepage)
|
||||||
return 0;
|
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);
|
EXPORT_SYMBOL(generic_writepages);
|
||||||
|
Loading…
Reference in New Issue
Block a user