2024-04-02 02:53:11

by Li zeming

[permalink] [raw]
Subject: [PATCH] ext4: extents: Remove unnecessary ‘NULL’ values from path

path is assigned first, so it does not need to initialize the
assignment.

Signed-off-by: Li zeming <[email protected]>
---
fs/ext4/extents.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
index 7669d154c05e0..4ab96f01a6f31 100644
--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -600,7 +600,7 @@ __read_extent_tree_block(const char *function, unsigned int line,
int ext4_ext_precache(struct inode *inode)
{
struct ext4_inode_info *ei = EXT4_I(inode);
- struct ext4_ext_path *path = NULL;
+ struct ext4_ext_path *path;
struct buffer_head *bh;
int i = 0, depth, ret = 0;

--
2.18.2



2024-04-02 03:55:23

by Theodore Ts'o

[permalink] [raw]
Subject: Re: [PATCH] ext4: extents: Remov e unnecessary ‘NULL’ values from path

On Tue, Apr 02, 2024 at 10:41:40AM +0800, Li zeming wrote:
> path is assigned first, so it does not need to initialize the
> assignment.

That's technically true, but the compiler is perfectly capable of
optimizing it out. So it's harmless, and removing it does make the
code a bit more fragile, since it needs to be set so that the cleanup
code doesn't accidentally dereference an uninitialized pointer:

out:
up_read(&ei->i_data_sem);
ext4_free_ext_path(path);
return ret;


So if later on, we add code which does a "goto out" on an error,
before path gets initialized, that would be bad. So removing the
"unnecessary" set has no upside, and it has a potential disadvantage.


- Ted