Commit 5f18f60d authored by Zhang Yi's avatar Zhang Yi Committed by Theodore Ts'o
Browse files

ext4: remove EXT4_GET_BLOCKS_IO_CREATE_EXT



We do not use EXT4_GET_BLOCKS_IO_CREATE_EXT or split extents before
submitting I/O; therefore, remove the related code.

Signed-off-by: default avatarZhang Yi <yi.zhang@huawei.com>
Reviewed-by: default avatarJan Kara <jack@suse.cz>
Reviewed-by: default avatarBaokun Li <libaokun1@huawei.com>
Reviewed-by: default avatarOjaswin Mujoo <ojaswin@linux.ibm.com>
Link: https://patch.msgid.link/20260105014522.1937690-8-yi.zhang@huaweicloud.com


Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
parent 5ca28af0
Loading
Loading
Loading
Loading
+0 −9
Original line number Diff line number Diff line
@@ -707,15 +707,6 @@ enum {
	 * found an unwritten extent, we need to split it.
	 */
#define EXT4_GET_BLOCKS_SPLIT_NOMERGE		0x0008
	/*
	 * Caller is from the dio or dioread_nolock buffered IO, reqest to
	 * create an unwritten extent if it does not exist or split the
	 * found unwritten extent. Also do not merge the newly created
	 * unwritten extent, io end will convert unwritten to written,
	 * and try to merge the written extent.
	 */
#define EXT4_GET_BLOCKS_IO_CREATE_EXT		(EXT4_GET_BLOCKS_SPLIT_NOMERGE|\
					 EXT4_GET_BLOCKS_CREATE_UNWRIT_EXT)
	/* Convert unwritten extent to initialized. */
#define EXT4_GET_BLOCKS_CONVERT			0x0010
	/* Eventual metadata allocation (due to growing extent tree)
+0 −29
Original line number Diff line number Diff line
@@ -3925,34 +3925,6 @@ ext4_ext_handle_unwritten_extents(handle_t *handle, struct inode *inode,
	trace_ext4_ext_handle_unwritten_extents(inode, map, flags,
						*allocated, newblock);

	/* get_block() before submitting IO, split the extent */
	if (flags & EXT4_GET_BLOCKS_SPLIT_NOMERGE) {
		int depth;

		path = ext4_split_convert_extents(handle, inode, map, path,
						  flags, allocated);
		if (IS_ERR(path))
			return path;
		/*
		 * shouldn't get a 0 allocated when splitting an extent unless
		 * m_len is 0 (bug) or extent has been corrupted
		 */
		if (unlikely(*allocated == 0)) {
			EXT4_ERROR_INODE(inode,
					 "unexpected allocated == 0, m_len = %u",
					 map->m_len);
			err = -EFSCORRUPTED;
			goto errout;
		}
		/* Don't mark unwritten if the extent has been zeroed out. */
		path = ext4_find_extent(inode, map->m_lblk, path, flags);
		if (IS_ERR(path))
			return path;
		depth = ext_depth(inode);
		if (ext4_ext_is_unwritten(path[depth].p_ext))
			map->m_flags |= EXT4_MAP_UNWRITTEN;
		goto out;
	}
	/* IO end_io complete, convert the filled extent to written */
	if (flags & EXT4_GET_BLOCKS_CONVERT) {
		path = ext4_convert_unwritten_extents_endio(handle, inode,
@@ -4006,7 +3978,6 @@ ext4_ext_handle_unwritten_extents(handle_t *handle, struct inode *inode,
		goto errout;
	}

out:
	map->m_flags |= EXT4_MAP_NEW;
map_out:
	map->m_flags |= EXT4_MAP_MAPPED;
+0 −11
Original line number Diff line number Diff line
@@ -587,7 +587,6 @@ static int ext4_map_query_blocks(handle_t *handle, struct inode *inode,
static int ext4_map_create_blocks(handle_t *handle, struct inode *inode,
				  struct ext4_map_blocks *map, int flags)
{
	struct extent_status es;
	unsigned int status;
	int err, retval = 0;

@@ -648,16 +647,6 @@ static int ext4_map_create_blocks(handle_t *handle, struct inode *inode,
			return err;
	}

	/*
	 * If the extent has been zeroed out, we don't need to update
	 * extent status tree.
	 */
	if (flags & EXT4_GET_BLOCKS_SPLIT_NOMERGE &&
	    ext4_es_lookup_extent(inode, map->m_lblk, NULL, &es, &map->m_seq)) {
		if (ext4_es_is_written(&es))
			return retval;
	}

	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,