lkml.org 
[lkml]   [2021]   [Sep]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 169/293] f2fs: fix to unmap pages from userspace process in punch_hole()
    Date
    From: Chao Yu <chao@kernel.org>

    [ Upstream commit c8dc3047c48540183744f959412d44b08c5435e1 ]

    We need to unmap pages from userspace process before removing pagecache
    in punch_hole() like we did in f2fs_setattr().

    Similar change:
    commit 5e44f8c374dc ("ext4: hole-punch use truncate_pagecache_range")

    Fixes: fbfa2cc58d53 ("f2fs: add file operations")
    Signed-off-by: Chao Yu <chao@kernel.org>
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    fs/f2fs/file.c | 4 +---
    1 file changed, 1 insertion(+), 3 deletions(-)

    diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
    index 95330dfdbb1a..2a7249496c57 100644
    --- a/fs/f2fs/file.c
    +++ b/fs/f2fs/file.c
    @@ -957,7 +957,6 @@ static int punch_hole(struct inode *inode, loff_t offset, loff_t len)
    }

    if (pg_start < pg_end) {
    - struct address_space *mapping = inode->i_mapping;
    loff_t blk_start, blk_end;
    struct f2fs_sb_info *sbi = F2FS_I_SB(inode);

    @@ -969,8 +968,7 @@ static int punch_hole(struct inode *inode, loff_t offset, loff_t len)
    down_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
    down_write(&F2FS_I(inode)->i_mmap_sem);

    - truncate_inode_pages_range(mapping, blk_start,
    - blk_end - 1);
    + truncate_pagecache_range(inode, blk_start, blk_end - 1);

    f2fs_lock_op(sbi);
    ret = f2fs_truncate_hole(inode, pg_start, pg_end);
    --
    2.30.2


    \
     
     \ /
      Last update: 2021-09-20 19:53    [W:3.334 / U:0.860 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site