[PATCH] ext4: Use struct_size() to improve ext4_htree_store_dirent()

From: Thorsten Blum
Date: Tue Nov 05 2024 - 05:34:55 EST


Inline and use struct_size() to calculate the number of bytes to
allocate for new_fn and remove the local variable len.

Reviewed-by: Jan Kara <jack@xxxxxxx>
Signed-off-by: Thorsten Blum <thorsten.blum@xxxxxxxxx>
---
This change was originally part of another patch that was split into two
separate patches after feedback from Greg KH
- Link: https://lore.kernel.org/r/20241104234214.8094-2-thorsten.blum@xxxxxxxxx/
---
fs/ext4/dir.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/fs/ext4/dir.c b/fs/ext4/dir.c
index 233479647f1b..02d47a64e8d1 100644
--- a/fs/ext4/dir.c
+++ b/fs/ext4/dir.c
@@ -471,14 +471,13 @@ int ext4_htree_store_dirent(struct file *dir_file, __u32 hash,
struct rb_node **p, *parent = NULL;
struct fname *fname, *new_fn;
struct dir_private_info *info;
- int len;

info = dir_file->private_data;
p = &info->root.rb_node;

/* Create and allocate the fname structure */
- len = sizeof(struct fname) + ent_name->len + 1;
- new_fn = kzalloc(len, GFP_KERNEL);
+ new_fn = kzalloc(struct_size(new_fn, name, ent_name->len + 1),
+ GFP_KERNEL);
if (!new_fn)
return -ENOMEM;
new_fn->hash = hash;
--
2.47.0