ext4: remove redundant GET_BLOCKS_CONVERT code
authorEric Whitney <enwlinux@gmail.com>
Thu, 30 Apr 2020 18:53:18 +0000 (14:53 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Thu, 4 Jun 2020 03:16:50 +0000 (23:16 -0400)
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>
fs/ext4/extents.c

index 728f4a620fdecaa332e1626b757c194a93b277fd..57f02e2d2f52a230e878b9cdca164547b5a070c5 100644 (file)
@@ -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;
 }