aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorThorsten Blum <thorsten.blum@linux.dev>2024-11-05 11:33:54 +0100
committerTheodore Ts'o <tytso@mit.edu>2024-11-13 12:56:48 -0500
commitd5e9836e13a53ef36af702d87ab20d1a126b0fb8 (patch)
tree7ed4739eaaecfed91d2317fba6e7426ae0caba7e
parentext4: annotate struct fname with __counted_by() (diff)
downloadwireguard-linux-d5e9836e13a53ef36af702d87ab20d1a126b0fb8.tar.xz
wireguard-linux-d5e9836e13a53ef36af702d87ab20d1a126b0fb8.zip
ext4: use struct_size() to improve ext4_htree_store_dirent()
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@suse.cz> Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev> Link: https://patch.msgid.link/20241105103353.11590-2-thorsten.blum@linux.dev Signed-off-by: Theodore Ts'o <tytso@mit.edu>
-rw-r--r--fs/ext4/dir.c5
1 files 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;