From: Lukas Czerner <lczerner@redhat.com>
To: linux-ext4@vger.kernel.org
Cc: xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, lczerner@redhat.com
Subject: [PATCH v2 4/8] xfstests: Move fallocate include into global.h
Date: Wed, 5 Mar 2014 16:51:35 +0100 [thread overview]
Message-ID: <1394034699-21187-5-git-send-email-lczerner@redhat.com> (raw)
In-Reply-To: <1394034699-21187-1-git-send-email-lczerner@redhat.com>
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 <lczerner@redhat.com>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
---
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 6fba3ad..2f95c4c 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 c56f168..7dec7c6 100644
--- a/ltp/fsstress.c
+++ b/ltp/fsstress.c
@@ -27,13 +27,6 @@
#ifdef HAVE_LINUX_FIEMAP_H
#include <linux/fiemap.h>
#endif
-#ifdef FALLOCATE
-#include <linux/falloc.h>
-#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
@@ -2085,7 +2078,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;
@@ -2507,7 +2500,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 2f1e3e8..c36a038 100644
--- a/ltp/fsx.c
+++ b/ltp/fsx.c
@@ -33,9 +33,6 @@
#ifdef AIO
#include <libaio.h>
#endif
-#ifdef FALLOCATE
-#include <linux/falloc.h>
-#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 e6a2c2b..8180f66 100644
--- a/src/global.h
+++ b/src/global.h
@@ -149,4 +149,29 @@
#include <sys/param.h>
#endif
+#ifdef HAVE_LINUX_FALLOC_H
+#include <linux/falloc.h>
+
+#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 */
--
1.8.3.1
next prev parent reply other threads:[~2014-03-05 15:52 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-05 15:51 [PATCH v2 0/8] Add tests for zero range into xfstests Lukas Czerner
2014-03-05 15:51 ` [PATCH v2 1/8] xfstests: Create single function for testing xfs_io commands Lukas Czerner
2014-03-06 17:44 ` Christoph Hellwig
2014-03-06 17:57 ` Lukáš Czerner
2014-03-05 15:51 ` [PATCH v2 2/8] xfstests: create _test_block_boundaries in common/punch Lukas Czerner
2014-03-06 17:45 ` Christoph Hellwig
2014-03-05 15:51 ` [PATCH v2 3/8] generic/008: Add test for fallocate zero range at block boundary Lukas Czerner
2014-03-06 17:46 ` Christoph Hellwig
2014-03-05 15:51 ` Lukas Czerner [this message]
2014-03-06 17:47 ` [PATCH v2 4/8] xfstests: Move fallocate include into global.h Christoph Hellwig
2014-03-05 15:51 ` [PATCH v2 5/8] xfstests: Add fallocate zero range operation to fsstress Lukas Czerner
2014-03-05 15:51 ` [PATCH v2 6/8] fsstress: translate flags in fiemap_f Lukas Czerner
2014-03-06 17:48 ` Christoph Hellwig
2014-03-06 18:02 ` Lukáš Czerner
2014-03-05 15:51 ` [PATCH v2 7/8] xfstests: Add fallocate zero range operation to fsx Lukas Czerner
2014-03-05 15:51 ` [PATCH v2 8/8] ext4/001: Add ext4 specific test for fallocate zero range Lukas Czerner
2014-03-13 3:22 ` [PATCH v2 0/8] Add tests for zero range into xfstests Dave Chinner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1394034699-21187-5-git-send-email-lczerner@redhat.com \
--to=lczerner@redhat.com \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=xfs@oss.sgi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).