OSDN Git Service

f2fs: avoid latency-critical readahead of node pages
authorJaegeuk Kim <jaegeuk@kernel.org>
Fri, 17 Jun 2016 00:03:23 +0000 (17:03 -0700)
committerJaegeuk Kim <jaegeuk@kernel.org>
Wed, 6 Jul 2016 17:44:10 +0000 (10:44 -0700)
The f2fs_map_blocks is very related to the performance, so let's avoid any
latency to read ahead node pages.

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

index 0832528..ba4963f 100644 (file)
@@ -652,7 +652,7 @@ int f2fs_map_blocks(struct inode *inode, struct f2fs_map_blocks *map,
        unsigned int maxblocks = map->m_len;
        struct dnode_of_data dn;
        struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
-       int mode = create ? ALLOC_NODE : LOOKUP_NODE_RA;
+       int mode = create ? ALLOC_NODE : LOOKUP_NODE;
        pgoff_t pgofs, end_offset, end;
        int err = 0, ofs = 1;
        unsigned int ofs_in_node, last_ofs_in_node;
index b9d745e..d07e775 100644 (file)
@@ -354,7 +354,7 @@ static loff_t f2fs_seek_block(struct file *file, loff_t offset, int whence)
 
        for (; data_ofs < isize; data_ofs = (loff_t)pgofs << PAGE_SHIFT) {
                set_new_dnode(&dn, inode, NULL, NULL, 0);
-               err = get_dnode_of_data(&dn, pgofs, LOOKUP_NODE_RA);
+               err = get_dnode_of_data(&dn, pgofs, LOOKUP_NODE);
                if (err && err != -ENOENT) {
                        goto fail;
                } else if (err == -ENOENT) {