lkml.org 
[lkml]   [2018]   [Feb]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 1/2] f2fs: enable to gc page whose inode already atomic commit
    Date
    If inode has already started to atomic commit, then set_page_dirty will
    not mix the gc pages with the inmem atomic pages, so the page can be
    gced safely.

    Signed-off-by: Yunlong Song <yunlong.song@huawei.com>
    ---
    fs/f2fs/data.c | 5 ++---
    fs/f2fs/gc.c | 6 ++++--
    2 files changed, 6 insertions(+), 5 deletions(-)

    diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
    index 7435830..edafcb6 100644
    --- a/fs/f2fs/data.c
    +++ b/fs/f2fs/data.c
    @@ -1580,14 +1580,13 @@ bool should_update_outplace(struct inode *inode, struct f2fs_io_info *fio)
    return true;
    if (S_ISDIR(inode->i_mode))
    return true;
    - if (f2fs_is_atomic_file(inode))
    - return true;
    if (fio) {
    if (is_cold_data(fio->page))
    return true;
    if (IS_ATOMIC_WRITTEN_PAGE(fio->page))
    return true;
    - }
    + } else if (f2fs_is_atomic_file(inode))
    + return true;
    return false;
    }

    diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c
    index b9d93fd..84ab3ff 100644
    --- a/fs/f2fs/gc.c
    +++ b/fs/f2fs/gc.c
    @@ -622,7 +622,8 @@ static void move_data_block(struct inode *inode, block_t bidx,
    if (!check_valid_map(F2FS_I_SB(inode), segno, off))
    goto out;

    - if (f2fs_is_atomic_file(inode))
    + if (f2fs_is_atomic_file(inode) &&
    + !f2fs_is_commit_atomic_write(inode))
    goto out;

    if (f2fs_is_pinned_file(inode)) {
    @@ -729,7 +730,8 @@ static void move_data_page(struct inode *inode, block_t bidx, int gc_type,
    if (!check_valid_map(F2FS_I_SB(inode), segno, off))
    goto out;

    - if (f2fs_is_atomic_file(inode))
    + if (f2fs_is_atomic_file(inode) &&
    + !f2fs_is_commit_atomic_write(inode))
    goto out;
    if (f2fs_is_pinned_file(inode)) {
    if (gc_type == FG_GC)
    --
    1.8.5.2
    \
     
     \ /
      Last update: 2018-02-03 03:48    [W:2.605 / U:2.980 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site