mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 04:40:51 +07:00
ext4: add block plug for .writepages
Add block plug for ext4 .writepages. Though ext4 .writepages already handles request merge very well, block plug is still helpful to reduce block lock contention. Signed-off-by: Shaohua Li <shaohua.li@intel.com> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
This commit is contained in:
parent
f6f96fdb8c
commit
1bce63d1a2
@ -2160,6 +2160,7 @@ static int ext4_da_writepages(struct address_space *mapping,
|
||||
struct ext4_sb_info *sbi = EXT4_SB(mapping->host->i_sb);
|
||||
pgoff_t done_index = 0;
|
||||
pgoff_t end;
|
||||
struct blk_plug plug;
|
||||
|
||||
trace_ext4_da_writepages(inode, wbc);
|
||||
|
||||
@ -2238,6 +2239,7 @@ static int ext4_da_writepages(struct address_space *mapping,
|
||||
if (wbc->sync_mode == WB_SYNC_ALL || wbc->tagged_writepages)
|
||||
tag_pages_for_writeback(mapping, index, end);
|
||||
|
||||
blk_start_plug(&plug);
|
||||
while (!ret && wbc->nr_to_write > 0) {
|
||||
|
||||
/*
|
||||
@ -2302,6 +2304,7 @@ static int ext4_da_writepages(struct address_space *mapping,
|
||||
*/
|
||||
break;
|
||||
}
|
||||
blk_finish_plug(&plug);
|
||||
if (!io_done && !cycled) {
|
||||
cycled = 1;
|
||||
index = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user