]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
f2fs: skip writing in ->writepages when no dirty pages exist
authorChao Yu <chao2.yu@samsung.com>
Fri, 17 Jul 2015 10:02:39 +0000 (18:02 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Wed, 5 Aug 2015 15:08:11 +0000 (08:08 -0700)
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 <chao2.yu@samsung.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/data.c

index 801b0b0b08f4c0ee3461aabb656327e2b26ab0b6..e4081fc91012e53731d230f56c0364acf161a2c4 100644 (file)
@@ -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))