Messages in this thread | | | Date | Mon, 11 Dec 2023 14:08:41 -0800 | From | Jaegeuk Kim <> | Subject | Re: [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
| |