mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-16 02:14:58 +00:00
jbd2: avoid dozens of -Wflex-array-member-not-at-end warnings
-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 (`struct shash_desc`) where the size of the flexible-array member (`__ctx`) is known at compile-time, and refactor the rest of the code, accordingly. So, with this, fix 77 of the following warnings: include/linux/jbd2.h:1800:35: 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: Jan Kara <jack@suse.cz> Link: https://patch.msgid.link/ZyU94w0IALVhc9Jy@kspp Signed-off-by: Theodore Ts'o <tytso@mit.edu>
This commit is contained in:
parent
6a0c5887a5
commit
2bd9077b62
@ -1796,22 +1796,21 @@ static inline unsigned long jbd2_log_space_left(journal_t *journal)
|
||||
static inline u32 jbd2_chksum(journal_t *journal, u32 crc,
|
||||
const void *address, unsigned int length)
|
||||
{
|
||||
struct {
|
||||
struct shash_desc shash;
|
||||
char ctx[JBD_MAX_CHECKSUM_SIZE];
|
||||
} desc;
|
||||
DEFINE_RAW_FLEX(struct shash_desc, desc, __ctx,
|
||||
DIV_ROUND_UP(JBD_MAX_CHECKSUM_SIZE,
|
||||
sizeof(*((struct shash_desc *)0)->__ctx)));
|
||||
int err;
|
||||
|
||||
BUG_ON(crypto_shash_descsize(journal->j_chksum_driver) >
|
||||
JBD_MAX_CHECKSUM_SIZE);
|
||||
|
||||
desc.shash.tfm = journal->j_chksum_driver;
|
||||
*(u32 *)desc.ctx = crc;
|
||||
desc->tfm = journal->j_chksum_driver;
|
||||
*(u32 *)desc->__ctx = crc;
|
||||
|
||||
err = crypto_shash_update(&desc.shash, address, length);
|
||||
err = crypto_shash_update(desc, address, length);
|
||||
BUG_ON(err);
|
||||
|
||||
return *(u32 *)desc.ctx;
|
||||
return *(u32 *)desc->__ctx;
|
||||
}
|
||||
|
||||
/* Return most recent uncommitted transaction */
|
||||
|
Loading…
x
Reference in New Issue
Block a user