From f5442e65e439b2fe675d7eb690f5581b22abcfd8 Mon Sep 17 00:00:00 2001 From: Richard Yao Date: Tue, 10 Jan 2023 15:14:59 -0500 Subject: [PATCH] Cleanup: Use C99 flexible array members instead of zero length arrays The Linux 5.16.14 kernel's coccicheck caught this. The semantic patch that caught it was: ./scripts/coccinelle/misc/flexible_array.cocci The Linux kernel's documentation makes a good case for why we should not use these: https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays Reviewed-by: Brian Behlendorf Signed-off-by: Richard Yao Closes #14372 --- module/os/linux/spl/spl-zone.c | 2 +- module/os/linux/zfs/vdev_disk.c | 2 +- module/zfs/dsl_scan.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/module/os/linux/spl/spl-zone.c b/module/os/linux/spl/spl-zone.c index b489179f1257..e821fbb4f3a1 100644 --- a/module/os/linux/spl/spl-zone.c +++ b/module/os/linux/spl/spl-zone.c @@ -50,7 +50,7 @@ typedef struct zone_datasets { typedef struct zone_dataset { struct list_head zd_list; /* zone_dataset linkage */ size_t zd_dsnamelen; /* length of name */ - char zd_dsname[0]; /* name of the member dataset */ + char zd_dsname[]; /* name of the member dataset */ } zone_dataset_t; #if defined(CONFIG_USER_NS) && defined(HAVE_USER_NS_COMMON_INUM) diff --git a/module/os/linux/zfs/vdev_disk.c b/module/os/linux/zfs/vdev_disk.c index 9e330e462eb0..2b5c4956dd02 100644 --- a/module/os/linux/zfs/vdev_disk.c +++ b/module/os/linux/zfs/vdev_disk.c @@ -71,7 +71,7 @@ typedef struct dio_request { atomic_t dr_ref; /* References */ int dr_error; /* Bio error */ int dr_bio_count; /* Count of bio's */ - struct bio *dr_bio[0]; /* Attached bio's */ + struct bio *dr_bio[]; /* Attached bio's */ } dio_request_t; /* diff --git a/module/zfs/dsl_scan.c b/module/zfs/dsl_scan.c index 86bc7ab0b0dc..73e0e05a0e85 100644 --- a/module/zfs/dsl_scan.c +++ b/module/zfs/dsl_scan.c @@ -281,7 +281,7 @@ typedef struct scan_io { * event of an error. This array must go at the end of the * struct to allow this for the variable number of elements. */ - dva_t sio_dva[0]; + dva_t sio_dva[]; } scan_io_t; #define SIO_SET_OFFSET(sio, x) DVA_SET_OFFSET(&(sio)->sio_dva[0], x)