lkml.org 
[lkml]   [2023]   [Dec]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4/6] f2fs: don't set FI_PREALLOCATED_ALL for partial write
    Date
    In f2fs_preallocate_blocks(), if it is partial write in 4KB, it's not
    necessary to call f2fs_map_blocks() and set FI_PREALLOCATED_ALL flag.

    Cc: Eric Biggers <ebiggers@google.com>
    Signed-off-by: Chao Yu <chao@kernel.org>
    ---
    fs/f2fs/file.c | 11 ++++++-----
    1 file changed, 6 insertions(+), 5 deletions(-)

    diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
    index 5c2f99ada6be..1a3c29a9a6a0 100644
    --- a/fs/f2fs/file.c
    +++ b/fs/f2fs/file.c
    @@ -4561,13 +4561,14 @@ static int f2fs_preallocate_blocks(struct kiocb *iocb, struct iov_iter *iter,
    return ret;
    }

    - /* Do not preallocate blocks that will be written partially in 4KB. */
    map.m_lblk = F2FS_BLK_ALIGN(pos);
    map.m_len = F2FS_BYTES_TO_BLK(pos + count);
    - if (map.m_len > map.m_lblk)
    - map.m_len -= map.m_lblk;
    - else
    - map.m_len = 0;
    +
    + /* Do not preallocate blocks that will be written partially in 4KB. */
    + if (map.m_len <= map.m_lblk)
    + return 0;
    +
    + map.m_len -= map.m_lblk;
    map.m_may_create = true;
    if (dio) {
    map.m_seg_type = f2fs_rw_hint_to_seg_type(inode->i_write_hint);
    --
    2.40.1
    \
     
     \ /
      Last update: 2023-12-10 12:37    [W:3.934 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site