lkml.org 
[lkml]   [2023]   [Dec]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 4/6] f2fs: don't set FI_PREALLOCATED_ALL for partial write
    On 12/10, Chao Yu wrote:
    > 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

    return 0;

    We just need the above?

    > - 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-11 23:09    [W:6.231 / U:0.176 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site