From: Chao Yu Date: Fri, 17 Jul 2015 10:02:39 +0000 (+0800) Subject: f2fs: skip writing in ->writepages when no dirty pages exist X-Git-Tag: v4.3-rc1~91^2~49 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=6a2905443cf27f9c14889428f14fccfb98ed97f4;p=karo-tx-linux.git f2fs: skip writing in ->writepages when no dirty pages exist When flushing comes from background, if there is no dirty page in the mapping of inode, we'd better to skip seeking dirty page from mapping for writebacking. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim --- diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index 801b0b0b08f4..e4081fc91012 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -1275,6 +1275,10 @@ static int f2fs_write_data_pages(struct address_space *mapping, if (!mapping->a_ops->writepage) return 0; + /* skip writing if there is no dirty page in this inode */ + if (!get_dirty_pages(inode) && wbc->sync_mode == WB_SYNC_NONE) + return 0; + if (S_ISDIR(inode->i_mode) && wbc->sync_mode == WB_SYNC_NONE && get_dirty_pages(inode) < nr_pages_to_skip(sbi, DATA) && available_free_memory(sbi, DIRTY_DENTS))