aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Ahrens <[email protected]>2017-02-08 09:27:48 -0800
committerBrian Behlendorf <[email protected]>2017-02-08 09:27:48 -0800
commit4a5d7f82679d848bcfb95d6c841f0418b24bfeab (patch)
tree05fc645e5ec3ddbdc7f9a8b71baa4e9c406cebbc
parent23d70cdef108005ecf4d862e0af01d08dabbc9c7 (diff)
Allow c99 code to compile
Add the appropriate compiler flags to accept c99 code. This will help to minimize differences with upstream, and aid porting changes. One change was necessary in zvol.c because the DEFINE_IDA() macro does not work with the new compiler flags. Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: Chunwei Chen <[email protected]> Reviewed-by: George Melikov <[email protected]> Signed-off-by: Matthew Ahrens <[email protected]> Closes #5756
-rw-r--r--config/Rules.am1
-rw-r--r--config/kernel.m41
-rw-r--r--module/zfs/dsl_dataset.c3
-rw-r--r--module/zfs/zvol.c4
4 files changed, 6 insertions, 3 deletions
diff --git a/config/Rules.am b/config/Rules.am
index 20a21e972..1d39e7779 100644
--- a/config/Rules.am
+++ b/config/Rules.am
@@ -5,6 +5,7 @@ AM_CFLAGS = ${DEBUG_CFLAGS} -Wall -Wstrict-prototypes
AM_CFLAGS += ${NO_UNUSED_BUT_SET_VARIABLE}
AM_CFLAGS += ${NO_BOOL_COMPARE}
AM_CFLAGS += -fno-strict-aliasing
+AM_CFLAGS += -std=gnu99
AM_CPPFLAGS = -D_GNU_SOURCE -D__EXTENSIONS__ -D_REENTRANT
AM_CPPFLAGS += -D_POSIX_PTHREAD_SEMANTICS -D_FILE_OFFSET_BITS=64
AM_CPPFLAGS += -D_LARGEFILE64_SOURCE -DHAVE_LARGE_STACKS=1
diff --git a/config/kernel.m4 b/config/kernel.m4
index a44132837..b8bd41e08 100644
--- a/config/kernel.m4
+++ b/config/kernel.m4
@@ -123,6 +123,7 @@ AC_DEFUN([ZFS_AC_CONFIG_KERNEL], [
dnl # -Wall -fno-strict-aliasing -Wstrict-prototypes and other
dnl # compiler options are added by the kernel build system.
+ KERNELCPPFLAGS="$KERNELCPPFLAGS -std=gnu99"
KERNELCPPFLAGS="$KERNELCPPFLAGS -Wno-declaration-after-statement"
KERNELCPPFLAGS="$KERNELCPPFLAGS $NO_UNUSED_BUT_SET_VARIABLE"
KERNELCPPFLAGS="$KERNELCPPFLAGS $NO_BOOL_COMPARE"
diff --git a/module/zfs/dsl_dataset.c b/module/zfs/dsl_dataset.c
index 0665c12fc..2ea64a2bb 100644
--- a/module/zfs/dsl_dataset.c
+++ b/module/zfs/dsl_dataset.c
@@ -2956,7 +2956,6 @@ void
dsl_dataset_clone_swap_sync_impl(dsl_dataset_t *clone,
dsl_dataset_t *origin_head, dmu_tx_t *tx)
{
- spa_feature_t f;
dsl_pool_t *dp = dmu_tx_pool(tx);
int64_t unused_refres_delta;
blkptr_t tmp;
@@ -2974,7 +2973,7 @@ dsl_dataset_clone_swap_sync_impl(dsl_dataset_t *clone,
/*
* Swap per-dataset feature flags.
*/
- for (f = 0; f < SPA_FEATURES; f++) {
+ for (spa_feature_t f = 0; f < SPA_FEATURES; f++) {
boolean_t clone_inuse;
boolean_t origin_head_inuse;
diff --git a/module/zfs/zvol.c b/module/zfs/zvol.c
index e5cd47afd..abe77ecd4 100644
--- a/module/zfs/zvol.c
+++ b/module/zfs/zvol.c
@@ -65,7 +65,8 @@ static list_t zvol_state_list;
#define ZVOL_HT_SIZE 1024
static struct hlist_head *zvol_htable;
#define ZVOL_HT_HEAD(hash) (&zvol_htable[(hash) & (ZVOL_HT_SIZE-1)])
-static DEFINE_IDA(zvol_ida);
+
+static struct ida zvol_ida;
/*
* The in-core state of each volume.
@@ -2161,6 +2162,7 @@ zvol_init(void)
list_create(&zvol_state_list, sizeof (zvol_state_t),
offsetof(zvol_state_t, zv_next));
mutex_init(&zvol_state_lock, NULL, MUTEX_DEFAULT, NULL);
+ ida_init(&zvol_ida);
zvol_htable = kmem_alloc(ZVOL_HT_SIZE * sizeof (struct hlist_head),
KM_SLEEP);