[PATCH][next] dlm: Avoid -Wflex-array-member-not-at-end warning

Gustavo A. R. Silva posted 1 patch 4 months, 2 weeks ago
fs/dlm/dlm_internal.h | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
[PATCH][next] dlm: Avoid -Wflex-array-member-not-at-end warning
Posted by Gustavo A. R. Silva 4 months, 2 weeks ago
-Wflex-array-member-not-at-end was introduced in GCC-14, and we are
getting ready to enable it, globally.

Move the conflicting declaration to the end of the corresponding
structure. Notice that `struct dlm_message` is a flexible
structure, this is a structure that contains a flexible-array
member.

Fix the following warning:

fs/dlm/dlm_internal.h:609:33: 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>
---
 fs/dlm/dlm_internal.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/fs/dlm/dlm_internal.h b/fs/dlm/dlm_internal.h
index d534a4bc162b..9df842421ae0 100644
--- a/fs/dlm/dlm_internal.h
+++ b/fs/dlm/dlm_internal.h
@@ -606,7 +606,6 @@ struct dlm_ls {
 
 	struct dlm_rsb		ls_local_rsb;	/* for returning errors */
 	struct dlm_lkb		ls_local_lkb;	/* for returning errors */
-	struct dlm_message	ls_local_ms;	/* for faking a reply */
 
 	struct dentry		*ls_debug_rsb_dentry; /* debugfs */
 	struct dentry		*ls_debug_waiters_dentry; /* debugfs */
@@ -665,6 +664,9 @@ struct dlm_ls {
 
 	int			ls_namelen;
 	char			ls_name[DLM_LOCKSPACE_LEN + 1];
+
+	/* Must be last --ends in a flexible-array member.*/
+	struct dlm_message	ls_local_ms;	/* for faking a reply */
 };
 
 /*
-- 
2.43.0
Re: [PATCH][next] dlm: Avoid -Wflex-array-member-not-at-end warning
Posted by Gustavo A. R. Silva 1 week, 1 day ago
Hi all,

Who can take this, please?

Thanks
-Gustavo

On 9/22/25 23:20, Gustavo A. R. Silva wrote:
> -Wflex-array-member-not-at-end was introduced in GCC-14, and we are
> getting ready to enable it, globally.
> 
> Move the conflicting declaration to the end of the corresponding
> structure. Notice that `struct dlm_message` is a flexible
> structure, this is a structure that contains a flexible-array
> member.
> 
> Fix the following warning:
> 
> fs/dlm/dlm_internal.h:609:33: 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>
> ---
>   fs/dlm/dlm_internal.h | 4 +++-
>   1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/fs/dlm/dlm_internal.h b/fs/dlm/dlm_internal.h
> index d534a4bc162b..9df842421ae0 100644
> --- a/fs/dlm/dlm_internal.h
> +++ b/fs/dlm/dlm_internal.h
> @@ -606,7 +606,6 @@ struct dlm_ls {
>   
>   	struct dlm_rsb		ls_local_rsb;	/* for returning errors */
>   	struct dlm_lkb		ls_local_lkb;	/* for returning errors */
> -	struct dlm_message	ls_local_ms;	/* for faking a reply */
>   
>   	struct dentry		*ls_debug_rsb_dentry; /* debugfs */
>   	struct dentry		*ls_debug_waiters_dentry; /* debugfs */
> @@ -665,6 +664,9 @@ struct dlm_ls {
>   
>   	int			ls_namelen;
>   	char			ls_name[DLM_LOCKSPACE_LEN + 1];
> +
> +	/* Must be last --ends in a flexible-array member.*/
> +	struct dlm_message	ls_local_ms;	/* for faking a reply */
>   };
>   
>   /*
Re: [PATCH][next] dlm: Avoid -Wflex-array-member-not-at-end warning
Posted by Alexander Aring 1 week ago
Hi,

On Fri, Jan 30, 2026 at 4:43 PM Gustavo A. R. Silva
<gustavo@embeddedor.com> wrote:
>
> Hi all,
>
> Who can take this, please?
>

Sorry, I will take care that it will be queued up for the next dlm pull-request.
I just checked again if the flexible array member can be accessed
under the current conditions, but I don't see this can be ever the
case... otherwise we would access garbage.

Thanks.

> Thanks
> -Gustavo
>
> On 9/22/25 23:20, Gustavo A. R. Silva wrote:
> > -Wflex-array-member-not-at-end was introduced in GCC-14, and we are
> > getting ready to enable it, globally.
> >
> > Move the conflicting declaration to the end of the corresponding
> > structure. Notice that `struct dlm_message` is a flexible
> > structure, this is a structure that contains a flexible-array
> > member.
> >
> > Fix the following warning:
> >
> > fs/dlm/dlm_internal.h:609:33: 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>

Acked-by: Alexander Aring <aahringo@redhat.com>

David Teigland can you please apply this patch to dlm/next so we don't
forget it.

Thanks

- Alex