f2fs: use writepages->lock for WB_SYNC_ALL
authorJaegeuk Kim <jaegeuk@kernel.org>
Wed, 20 Jan 2016 15:46:05 +0000 (23:46 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Tue, 23 Feb 2016 00:07:23 +0000 (16:07 -0800)
If there are many writepages calls by multiple threads in background, we don't
need to serialize to merge all the bios, since it's background.
In such the case, it'd better to run writepages concurrently.

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/data.c

index e8d4158a32065bc5dad8ea9dd361f1fdc0f3e666..0f0187804eda2ab38ba4855cec22427e183509d6 100644 (file)
@@ -1402,7 +1402,7 @@ static int f2fs_write_data_pages(struct address_space *mapping,
 
        diff = nr_pages_to_write(sbi, DATA, wbc);
 
-       if (!S_ISDIR(inode->i_mode)) {
+       if (!S_ISDIR(inode->i_mode) && wbc->sync_mode == WB_SYNC_ALL) {
                mutex_lock(&sbi->writepages);
                locked = true;
        }