From 2dc43e03e67d0d635eac1c423f3f022aeed6023c Mon Sep 17 00:00:00 2001 From: Lukas Czerner Date: Thu, 13 Mar 2014 15:19:52 +1100 Subject: [PATCH] build: Move fallocate include into global.h Move the inclusion of falloc.h with all it's possible defines for the fallocate mode into global.h header file so we do not have to include and define it manually in every tool using fallocate. Signed-off-by: Lukas Czerner Reviewed-by: Eric Sandeen Reviewed-by: Christoph Hellwig Signed-off-by: Dave Chinner --- configure.ac | 3 ++- ltp/fsstress.c | 11 ++--------- ltp/fsx.c | 11 ++++------- src/global.h | 25 +++++++++++++++++++++++++ 4 files changed, 33 insertions(+), 17 deletions(-) diff --git a/configure.ac b/configure.ac index 6fba3ad9..2f95c4c0 100644 --- a/configure.ac +++ b/configure.ac @@ -25,7 +25,8 @@ AC_HEADER_STDC sys/wait.h \ sys/types.h \ strings.h \ - err.h + err.h \ + linux/falloc.h ]) AC_CHECK_HEADERS([ sys/fs/xfs_fsops.h \ sys/fs/xfs_itable.h \ diff --git a/ltp/fsstress.c b/ltp/fsstress.c index 7f91c043..071d78be 100644 --- a/ltp/fsstress.c +++ b/ltp/fsstress.c @@ -27,13 +27,6 @@ #ifdef HAVE_LINUX_FIEMAP_H #include #endif -#ifdef FALLOCATE -#include -#ifndef FALLOC_FL_PUNCH_HOLE -/* Copy-paste from linux/falloc.h */ -#define FALLOC_FL_PUNCH_HOLE 0x02 /* de-allocates range */ -#endif -#endif #ifndef HAVE_ATTR_LIST #define attr_list(path, buf, size, flags, cursor) (errno = -ENOSYS, -1) #endif @@ -2093,7 +2086,7 @@ dwrite_f(int opno, long r) void fallocate_f(int opno, long r) { -#ifdef FALLOCATE +#ifdef HAVE_LINUX_FALLOC_H int e; pathname_t f; int fd; @@ -2515,7 +2508,7 @@ mknod_f(int opno, long r) void punch_f(int opno, long r) { -#ifdef FALLOCATE +#ifdef HAVE_LINUX_FALLOC_H int e; pathname_t f; int fd; diff --git a/ltp/fsx.c b/ltp/fsx.c index 2f1e3e83..c36a0381 100644 --- a/ltp/fsx.c +++ b/ltp/fsx.c @@ -33,9 +33,6 @@ #ifdef AIO #include #endif -#ifdef FALLOCATE -#include -#endif #ifndef MAP_FILE # define MAP_FILE 0 @@ -882,7 +879,7 @@ do_punch_hole(unsigned offset, unsigned length) } #endif -#ifdef FALLOCATE +#ifdef HAVE_LINUX_FALLOC_H /* fallocate is basically a no-op unless extending, then a lot like a truncate */ void do_preallocate(unsigned offset, unsigned length) @@ -1139,7 +1136,7 @@ usage(void) " -A: Use the AIO system calls\n" #endif " -D startingop: debug output starting at specified operation\n" -#ifdef FALLOCATE +#ifdef HAVE_LINUX_FALLOC_H " -F: Do not use fallocate (preallocation) calls\n" #endif #ifdef FALLOC_FL_PUNCH_HOLE @@ -1296,7 +1293,7 @@ int aio_rw(int rw, int fd, char *buf, unsigned len, unsigned offset) void test_fallocate() { -#ifdef FALLOCATE +#ifdef HAVE_LINUX_FALLOC_H if (!lite && fallocate_calls) { if (fallocate(fd, 0, 0, 1) && errno == EOPNOTSUPP) { if(!quiet) @@ -1306,7 +1303,7 @@ test_fallocate() ftruncate(fd, 0); } } -#else /* ! FALLOCATE */ +#else /* ! HAVE_LINUX_FALLOC_H */ fallocate_calls = 0; #endif diff --git a/src/global.h b/src/global.h index e6a2c2bc..8180f668 100644 --- a/src/global.h +++ b/src/global.h @@ -149,4 +149,29 @@ #include #endif +#ifdef HAVE_LINUX_FALLOC_H +#include + +#ifndef FALLOC_FL_KEEP_SIZE +#define FALLOC_FL_KEEP_SIZE 0x01 +#endif + +#ifndef FALLOC_FL_PUNCH_HOLE +#define FALLOC_FL_PUNCH_HOLE 0x02 #endif + +#ifndef FALLOC_FL_NO_HIDE_STALE +#define FALLOC_FL_NO_HIDE_STALE 0x04 +#endif + +#ifndef FALLOC_FL_COLLAPSE_RANGE +#define FALLOC_FL_COLLAPSE_RANGE 0x08 +#endif + +#ifndef FALLOC_FL_ZERO_RANGE +#define FALLOC_FL_ZERO_RANGE 0x10 +#endif + +#endif /* HAVE_LINUX_FALLOC_H */ + +#endif /* GLOBAL_H */ -- 2.30.2