bcachefs: Use struct_size()
Use struct_size() instead of hand writing it. This is less verbose and more robust. While at it, prepare for the coming implementation by GCC and Clang of the __counted_by attribute. Flexible array members annotated with __counted_by can have their accesses bounds-checked at run-time checking via CONFIG_UBSAN_BOUNDS (for array indexing) and CONFIG_FORTIFY_SOURCE (for strcpy/memcpy-family functions). Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
69d1f052d1
commit
c2d81c2412
@ -163,8 +163,7 @@ int bch2_sb_disk_groups_to_cpu(struct bch_fs *c)
|
||||
if (!groups)
|
||||
return 0;
|
||||
|
||||
cpu_g = kzalloc(sizeof(*cpu_g) +
|
||||
sizeof(cpu_g->entries[0]) * nr_groups, GFP_KERNEL);
|
||||
cpu_g = kzalloc(struct_size(cpu_g, entries, nr_groups), GFP_KERNEL);
|
||||
if (!cpu_g)
|
||||
return -BCH_ERR_ENOMEM_disk_groups_to_cpu;
|
||||
|
||||
|
@ -46,7 +46,7 @@ struct bch_disk_group_cpu {
|
||||
struct bch_disk_groups_cpu {
|
||||
struct rcu_head rcu;
|
||||
unsigned nr;
|
||||
struct bch_disk_group_cpu entries[];
|
||||
struct bch_disk_group_cpu entries[] __counted_by(nr);
|
||||
};
|
||||
|
||||
#endif /* _BCACHEFS_SUPER_TYPES_H */
|
||||
|
Loading…
x
Reference in New Issue
Block a user