diff mbox series

NFS: Replace one-element array with flexible-array member

Message ID 20220114005732.763911-1-deng.changcheng@zte.com.cn (mailing list archive)
State New, archived
Headers show
Series NFS: Replace one-element array with flexible-array member | expand

Commit Message

CGEL Jan. 14, 2022, 12:57 a.m. UTC
From: Changcheng Deng <deng.changcheng@zte.com.cn>

There is a regular need in the kernel to provide a way to declare having
a dynamically sized set of trailing elements in a structure. Kernel code
should always use “flexible array members” for these cases. The older
style of one-element or zero-length arrays should no longer be used.

Reference:
https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-
and-one-element-arrays

Reported-by: Zeal Robot <zealci@zte.com.cn>
Signed-off-by: Changcheng Deng <deng.changcheng@zte.com.cn>
---
 include/linux/nfs_xdr.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Trond Myklebust Jan. 14, 2022, 3:59 a.m. UTC | #1
On Fri, 2022-01-14 at 00:57 +0000, cgel.zte@gmail.com wrote:
> From: Changcheng Deng <deng.changcheng@zte.com.cn>
> 
> There is a regular need in the kernel to provide a way to declare
> having
> a dynamically sized set of trailing elements in a structure. Kernel
> code
> should always use “flexible array members” for these cases. The older
> style of one-element or zero-length arrays should no longer be used.
> 
> Reference:
> https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length
> -
> and-one-element-arrays
> 
> Reported-by: Zeal Robot <zealci@zte.com.cn>
> Signed-off-by: Changcheng Deng <deng.changcheng@zte.com.cn>
> ---
>  include/linux/nfs_xdr.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h
> index 39390d9df9e1..7f51edd5785a 100644
> --- a/include/linux/nfs_xdr.h
> +++ b/include/linux/nfs_xdr.h
> @@ -421,7 +421,7 @@ struct nfs42_layout_error {
>         __u64 offset;
>         __u64 length;
>         nfs4_stateid stateid;
> -       struct nfs42_device_error errors[1];
> +       struct nfs42_device_error errors[];
>  };
>  
>  #define NFS42_LAYOUTERROR_MAX 5

NACK. This is a fixed size array of length 1, not a variable size
array. Please fix your tool.
diff mbox series

Patch

diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h
index 39390d9df9e1..7f51edd5785a 100644
--- a/include/linux/nfs_xdr.h
+++ b/include/linux/nfs_xdr.h
@@ -421,7 +421,7 @@  struct nfs42_layout_error {
 	__u64 offset;
 	__u64 length;
 	nfs4_stateid stateid;
-	struct nfs42_device_error errors[1];
+	struct nfs42_device_error errors[];
 };
 
 #define NFS42_LAYOUTERROR_MAX 5