Compared to offsetof(), struct_size() provides additional compile-time
checks for structs with flexible arrays (e.g., __must_be_array()).
No functional changes intended.
Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
 #include <linux/uuid.h>
 #include <linux/namei.h>
 #include <linux/ratelimit.h>
+#include <linux/overflow.h>
 #include "overlayfs.h"
 
 /* Get write access to upper mnt - may fail if upper sb was remounted ro */
 
 struct ovl_entry *ovl_alloc_entry(unsigned int numlower)
 {
-       size_t size = offsetof(struct ovl_entry, __lowerstack[numlower]);
-       struct ovl_entry *oe = kzalloc(size, GFP_KERNEL);
+       struct ovl_entry *oe;
 
+       oe = kzalloc(struct_size(oe, __lowerstack, numlower), GFP_KERNEL);
        if (oe)
                oe->__numlower = numlower;