mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 17:47:41 +02:00
dcache: use kmalloc_flex() in __d_alloc
Use kmalloc_flex() when allocating a new 'struct external_name' in __d_alloc() to replace offsetof() and the open-coded size arithmetic, and to keep the size type-safe. Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev> Link: https://patch.msgid.link/20260417094238.551114-3-thorsten.blum@linux.dev Reviewed-by: Jan Kara <jack@suse.cz> Reviewed-by: Jori Koolstra <jkoolstra@xs4all.nl> Signed-off-by: Christian Brauner <brauner@kernel.org>
This commit is contained in:
parent
80008c75f4
commit
0447533fae
|
|
@ -1820,10 +1820,10 @@ static struct dentry *__d_alloc(struct super_block *sb, const struct qstr *name)
|
|||
name = &slash_name;
|
||||
dname = dentry->d_shortname.string;
|
||||
} else if (name->len > DNAME_INLINE_LEN-1) {
|
||||
size_t size = offsetof(struct external_name, name[1]);
|
||||
struct external_name *p = kmalloc(size + name->len,
|
||||
GFP_KERNEL_ACCOUNT |
|
||||
__GFP_RECLAIMABLE);
|
||||
struct external_name *p;
|
||||
|
||||
p = kmalloc_flex(*p, name, name->len + 1,
|
||||
GFP_KERNEL_ACCOUNT | __GFP_RECLAIMABLE);
|
||||
if (!p) {
|
||||
kmem_cache_free(dentry_cache, dentry);
|
||||
return NULL;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user