lkml.org 
[lkml]   [2018]   [Sep]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.18 036/131] f2fs: fix to active page in lru list for read path
    Date
    From: Chao Yu <yuchao0@huawei.com>

    [ Upstream commit 82cf4f132e6d16dca6fc3bd955019246141bc645 ]

    If config CONFIG_F2FS_FAULT_INJECTION is on, for both read or write path
    we will call find_lock_page() to get the page, but for read path, it
    missed to passing FGP_ACCESSED to allocator to active the page in LRU
    list, result in being reclaimed in advance incorrectly, fix it.

    Reported-by: Xianrong Zhou <zhouxianrong@huawei.com>
    Signed-off-by: Chao Yu <yuchao0@huawei.com>
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    ---
    fs/f2fs/f2fs.h | 7 ++++++-
    1 file changed, 6 insertions(+), 1 deletion(-)

    diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h
    index 4d8b1de83143..34af21f46f2c 100644
    --- a/fs/f2fs/f2fs.h
    +++ b/fs/f2fs/f2fs.h
    @@ -1954,8 +1954,13 @@ static inline struct page *f2fs_grab_cache_page(struct address_space *mapping,
    pgoff_t index, bool for_write)
    {
    #ifdef CONFIG_F2FS_FAULT_INJECTION
    - struct page *page = find_lock_page(mapping, index);
    + struct page *page;

    + if (!for_write)
    + page = find_get_page_flags(mapping, index,
    + FGP_LOCK | FGP_ACCESSED);
    + else
    + page = find_lock_page(mapping, index);
    if (page)
    return page;

    --
    2.17.1
    \
     
     \ /
      Last update: 2018-09-02 15:35    [W:4.296 / U:0.136 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site