diff options
author | Eric Whitney <enwlinux@gmail.com> | 2020-04-30 21:53:18 +0300 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2020-06-04 06:16:50 +0300 |
commit | bee6cf00c7f17df27c842c169db31d53bdd775ba (patch) | |
tree | 561dd6ae29fd58579ef64b955bf4b752c505c25e /fs/ext4 | |
parent | ee802f86899341d835c629a4ad9607135f1b71a2 (diff) | |
download | linux-bee6cf00c7f17df27c842c169db31d53bdd775ba.tar.xz |
ext4: remove redundant GET_BLOCKS_CONVERT code
Remove the redundant code assigning values to ext4_map_blocks components
in ext4_ext_handle_unwritten_extents() for the EXT4_GET_BLOCKS_CONVERT
case, using the code at the function exit instead. Clean up and reorder
that code to eliminate more redundancy and improve readability.
Signed-off-by: Eric Whitney <enwlinux@gmail.com>
Link: https://lore.kernel.org/r/20200430185320.23001-3-enwlinux@gmail.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Diffstat (limited to 'fs/ext4')
-rw-r--r-- | fs/ext4/extents.c | 26 |
1 files changed, 8 insertions, 18 deletions
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c index 728f4a620fde..57f02e2d2f52 100644 --- a/fs/ext4/extents.c +++ b/fs/ext4/extents.c @@ -3829,20 +3829,14 @@ ext4_ext_handle_unwritten_extents(handle_t *handle, struct inode *inode, } /* IO end_io complete, convert the filled extent to written */ if (flags & EXT4_GET_BLOCKS_CONVERT) { - ret = ext4_convert_unwritten_extents_endio(handle, inode, map, + err = ext4_convert_unwritten_extents_endio(handle, inode, map, ppath); - if (ret >= 0) - ext4_update_inode_fsync_trans(handle, inode, 1); - else - err = ret; - map->m_flags |= EXT4_MAP_MAPPED; - map->m_pblk = newblock; - if (allocated > map->m_len) - allocated = map->m_len; - map->m_len = allocated; - goto out2; + if (err < 0) + goto out2; + ext4_update_inode_fsync_trans(handle, inode, 1); + goto map_out; } - /* buffered IO case */ + /* buffered IO cases */ /* * repeat fallocate creation request * we already have an unwritten extent @@ -3876,18 +3870,14 @@ out: } else allocated = ret; map->m_flags |= EXT4_MAP_NEW; - if (allocated > map->m_len) - allocated = map->m_len; - map->m_len = allocated; - map_out: map->m_flags |= EXT4_MAP_MAPPED; out1: + map->m_pblk = newblock; if (allocated > map->m_len) allocated = map->m_len; - ext4_ext_show_leaf(inode, path); - map->m_pblk = newblock; map->m_len = allocated; + ext4_ext_show_leaf(inode, path); out2: return err ? err : allocated; } |