mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-12-27 14:41:22 -05:00
ext4: avoid -Wflex-array-member-not-at-end warning
-Wflex-array-member-not-at-end was introduced in GCC-14, and we are getting ready to enable it, globally. Use the `DEFINE_RAW_FLEX()` helper for an on-stack definition of a flexible structure where the size of the flexible-array member is known at compile-time, and refactor the rest of the code, accordingly. So, with these changes, fix the following warning: fs/ext4/mballoc.c:3041:40: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member-not-at-end] Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org> Reviewed-by: Kees Cook <kees@kernel.org> Link: https://patch.msgid.link/Z-SF97N3AxcIMlSi@kspp Signed-off-by: Theodore Ts'o <tytso@mit.edu>
This commit is contained in:
committed by
Theodore Ts'o
parent
ce7e8a65aa
commit
7e50bbb134
@@ -3037,10 +3037,8 @@ static int ext4_mb_seq_groups_show(struct seq_file *seq, void *v)
|
||||
unsigned char blocksize_bits = min_t(unsigned char,
|
||||
sb->s_blocksize_bits,
|
||||
EXT4_MAX_BLOCK_LOG_SIZE);
|
||||
struct sg {
|
||||
struct ext4_group_info info;
|
||||
ext4_grpblk_t counters[EXT4_MAX_BLOCK_LOG_SIZE + 2];
|
||||
} sg;
|
||||
DEFINE_RAW_FLEX(struct ext4_group_info, sg, bb_counters,
|
||||
EXT4_MAX_BLOCK_LOG_SIZE + 2);
|
||||
|
||||
group--;
|
||||
if (group == 0)
|
||||
@@ -3048,7 +3046,7 @@ static int ext4_mb_seq_groups_show(struct seq_file *seq, void *v)
|
||||
" 2^0 2^1 2^2 2^3 2^4 2^5 2^6 "
|
||||
" 2^7 2^8 2^9 2^10 2^11 2^12 2^13 ]\n");
|
||||
|
||||
i = (blocksize_bits + 2) * sizeof(sg.info.bb_counters[0]) +
|
||||
i = (blocksize_bits + 2) * sizeof(sg->bb_counters[0]) +
|
||||
sizeof(struct ext4_group_info);
|
||||
|
||||
grinfo = ext4_get_group_info(sb, group);
|
||||
@@ -3068,14 +3066,14 @@ static int ext4_mb_seq_groups_show(struct seq_file *seq, void *v)
|
||||
* We care only about free space counters in the group info and
|
||||
* these are safe to access even after the buddy has been unloaded
|
||||
*/
|
||||
memcpy(&sg, grinfo, i);
|
||||
seq_printf(seq, "#%-5u: %-5u %-5u %-5u [", group, sg.info.bb_free,
|
||||
sg.info.bb_fragments, sg.info.bb_first_free);
|
||||
memcpy(sg, grinfo, i);
|
||||
seq_printf(seq, "#%-5u: %-5u %-5u %-5u [", group, sg->bb_free,
|
||||
sg->bb_fragments, sg->bb_first_free);
|
||||
for (i = 0; i <= 13; i++)
|
||||
seq_printf(seq, " %-5u", i <= blocksize_bits + 1 ?
|
||||
sg.info.bb_counters[i] : 0);
|
||||
sg->bb_counters[i] : 0);
|
||||
seq_puts(seq, " ]");
|
||||
if (EXT4_MB_GRP_BBITMAP_CORRUPT(&sg.info))
|
||||
if (EXT4_MB_GRP_BBITMAP_CORRUPT(sg))
|
||||
seq_puts(seq, " Block bitmap corrupted!");
|
||||
seq_putc(seq, '\n');
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user