summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPádraig Brady <P@draigBrady.com>2011-07-15 09:51:35 +0100
committerPádraig Brady <P@draigBrady.com>2011-07-15 10:55:04 +0100
commit4f71710c420caa8d9efa93fb30c308976be0eda0 (patch)
treeae434a701e79c1f5446ff17643a7590f4937a5cf /src
parentfeb0b08c0d030fbeb94ef4f7b6f7f701ffb42af5 (diff)
downloadcoreutils-4f71710c420caa8d9efa93fb30c308976be0eda0.tar.xz
build: avoid a fiemap compile failure on some systems
* src/fiemap.h (struct fiemap): Adjust the previous change to the fiemap_extents array, which would also require changes to the sizeof calculations in extent_scan_read(). Instead, only declare the fiemap_extents zero length array on linux, which is the only platform that references this member. This avoids a compilation failure on systems that don't support this non standard construct. We don't use the equivalent C99 flexible array construct so as to have maximum portability. * src/extent-scan.c: Cleanup. Remove a redundant #ifndef.
Diffstat (limited to 'src')
-rw-r--r--src/extent-scan.c4
-rw-r--r--src/fiemap.h8
2 files changed, 7 insertions, 5 deletions
diff --git a/src/extent-scan.c b/src/extent-scan.c
index 48dd564e5..37445b84d 100644
--- a/src/extent-scan.c
+++ b/src/extent-scan.c
@@ -24,11 +24,9 @@
#include "system.h"
#include "extent-scan.h"
+#include "fiemap.h"
#include "xstrtol.h"
-#ifndef HAVE_FIEMAP
-# include "fiemap.h"
-#endif
/* Work around Linux kernel issues on BTRFS and EXT4 before 2.6.39.
FIXME: remove in 2013, or whenever we're pretty confident
diff --git a/src/fiemap.h b/src/fiemap.h
index e7243b41b..15ddff9a0 100644
--- a/src/fiemap.h
+++ b/src/fiemap.h
@@ -52,8 +52,12 @@ struct fiemap
uint32_t fm_reserved;
/* Array of mapped extents(out).
- The actual size is given by fm_extent_count. */
- struct fiemap_extent fm_extents[1];
+ This is protected by the ifdef because it uses non standard
+ zero length arrays. Note C99 has the equivalent flexible arrays,
+ but we don't use those for maximum portability to older systems. */
+# ifdef __linux__
+ struct fiemap_extent fm_extents[0];
+# endif
};
/* The maximum offset can be mapped for a file. */