f2fs: don't set FI_PREALLOCATED_ALL for partial write
authorChao Yu <chao@kernel.org>
Tue, 12 Dec 2023 01:01:20 +0000 (09:01 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Tue, 12 Dec 2023 01:46:35 +0000 (17:46 -0800)
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>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/file.c

index 79d5b64..026d05a 100644 (file)
@@ -4567,7 +4567,8 @@ static int f2fs_preallocate_blocks(struct kiocb *iocb, struct iov_iter *iter,
        if (map.m_len > map.m_lblk)
                map.m_len -= map.m_lblk;
        else
-               map.m_len = 0;
+               return 0;
+
        map.m_may_create = true;
        if (dio) {
                map.m_seg_type = f2fs_rw_hint_to_seg_type(inode->i_write_hint);