]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ext4: use ext4_map_query_blocks() in ext4_map_blocks()
authorZhang Yi <yi.zhang@huawei.com>
Tue, 13 Aug 2024 12:34:48 +0000 (20:34 +0800)
committerTheodore Ts'o <tytso@mit.edu>
Mon, 2 Sep 2024 19:26:14 +0000 (15:26 -0400)
The blocks map querying logic in ext4_map_blocks() are the same as
ext4_map_query_blocks(), so switch to directly use it.

Signed-off-by: Zhang Yi <yi.zhang@huawei.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Link: https://patch.msgid.link/20240813123452.2824659-9-yi.zhang@huaweicloud.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
fs/ext4/inode.c

index 72f2b6ce97c0d6eb1f288c6d33c8d666246b72d7..1fa59b0fc7f317b53e92b5e35ae3a4db71e6d378 100644 (file)
@@ -658,27 +658,7 @@ int ext4_map_blocks(handle_t *handle, struct inode *inode,
         * file system block.
         */
        down_read(&EXT4_I(inode)->i_data_sem);
-       if (ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS)) {
-               retval = ext4_ext_map_blocks(handle, inode, map, 0);
-       } else {
-               retval = ext4_ind_map_blocks(handle, inode, map, 0);
-       }
-       if (retval > 0) {
-               unsigned int status;
-
-               if (unlikely(retval != map->m_len)) {
-                       ext4_warning(inode->i_sb,
-                                    "ES len assertion failed for inode "
-                                    "%lu: retval %d != map->m_len %d",
-                                    inode->i_ino, retval, map->m_len);
-                       WARN_ON(1);
-               }
-
-               status = map->m_flags & EXT4_MAP_UNWRITTEN ?
-                               EXTENT_STATUS_UNWRITTEN : EXTENT_STATUS_WRITTEN;
-               ext4_es_insert_extent(inode, map->m_lblk, map->m_len,
-                                     map->m_pblk, status, 0);
-       }
+       retval = ext4_map_query_blocks(handle, inode, map);
        up_read((&EXT4_I(inode)->i_data_sem));
 
 found: