[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20251027122303.1146352-1-yangerkun@huawei.com>
Date: Mon, 27 Oct 2025 20:23:00 +0800
From: Yang Erkun <yangerkun@...wei.com>
To: <linux-ext4@...r.kernel.org>, <tytso@....edu>, <adilger.kernel@...ger.ca>,
<jack@...e.cz>
CC: <yi.zhang@...wei.com>, <libaokun1@...wei.com>, <yangerkun@...wei.com>,
<yangerkun@...weicloud.com>
Subject: [PATCH 1/4] ext4: remove useless code in ext4_map_create_blocks
IO path with EXT4_GET_BLOCKS_PRE_IO means dio within i_size or
dioread_nolock buffer writeback, they all means we need a unwritten
extent(or this extent has already been initialized), and the split won't
zero the range we really write. So this check seems useless. Besides,
even if we repeatedly execute ext4_es_insert_extent, there won't
actually be any issues.
Signed-off-by: Yang Erkun <yangerkun@...wei.com>
---
fs/ext4/inode.c | 11 -----------
1 file changed, 11 deletions(-)
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index e99306a8f47c..e8bac93ca668 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -583,7 +583,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;
@@ -644,16 +643,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_PRE_IO &&
- ext4_es_lookup_extent(inode, map->m_lblk, NULL, &es)) {
- 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,
--
2.39.2
Powered by blists - more mailing lists