On Tue 18-12-18 22:03:41, zhangyi (F) wrote: > Use i_size_read() in ext4_ext_convert_to_initialized() and > ext4_split_convert_extents() because we haven't taken inode->i_rwsem > in these two functions. > > Signed-off-by: zhangyi (F) <yi.zhang@xxxxxxxxxx> The patch looks good. You can add: Reviewed-by: Jan Kara <jack@xxxxxxx> Honza > --- > fs/ext4/extents.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c > index 240b6de..0307fc6 100644 > --- a/fs/ext4/extents.c > +++ b/fs/ext4/extents.c > @@ -3483,7 +3483,7 @@ static int ext4_ext_convert_to_initialized(handle_t *handle, > (unsigned long long)map->m_lblk, map_len); > > sbi = EXT4_SB(inode->i_sb); > - eof_block = (inode->i_size + inode->i_sb->s_blocksize - 1) >> > + eof_block = (i_size_read(inode) + inode->i_sb->s_blocksize - 1) >> > inode->i_sb->s_blocksize_bits; > if (eof_block < map->m_lblk + map_len) > eof_block = map->m_lblk + map_len; > @@ -3739,7 +3739,7 @@ static int ext4_split_convert_extents(handle_t *handle, > __func__, inode->i_ino, > (unsigned long long)map->m_lblk, map->m_len); > > - eof_block = (inode->i_size + inode->i_sb->s_blocksize - 1) >> > + eof_block = (i_size_read(inode) + inode->i_sb->s_blocksize - 1) >> > inode->i_sb->s_blocksize_bits; > if (eof_block < map->m_lblk + map->m_len) > eof_block = map->m_lblk + map->m_len; > -- > 2.7.4 > -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR