summaryrefslogtreecommitdiff
path: root/m4
diff options
context:
space:
mode:
authorDarrick J. Wong <djwong@kernel.org>2023-02-07 09:01:41 -0800
committerZorro Lang <zlang@kernel.org>2023-02-08 02:38:55 +0800
commit3fec4791015ea207a150260bc6ecd522d976592c (patch)
tree1b61910c55c76c72e684ddb2182a9df4e93df94b /m4
parente926c8ffee93e85e19024adae26a8fb128efd2b1 (diff)
fuzzy: add a custom xfs find utility for scrub stress tests
Create a new find(1) like utility that doesn't crash on directory tree changes (like find does due to bugs in its loop detector) and actually implements the custom xfs attribute predicates that we need for scrub stress tests. This program will be needed for a future patch where we add stress tests for scrub and repair of file metadata. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Zorro Lang <zlang@redhat.com> Signed-off-by: Zorro Lang <zlang@kernel.org>
Diffstat (limited to 'm4')
-rw-r--r--m4/package_libcdev.m444
-rw-r--r--m4/package_xfslibs.m415
2 files changed, 59 insertions, 0 deletions
diff --git a/m4/package_libcdev.m4 b/m4/package_libcdev.m4
index 5c76c0f7..98572aec 100644
--- a/m4/package_libcdev.m4
+++ b/m4/package_libcdev.m4
@@ -110,3 +110,47 @@ AC_DEFUN([AC_HAVE_COPY_FILE_RANGE],
AC_SUBST(have_copy_file_range)
])
+# Check if we have SEEK_DATA
+AC_DEFUN([AC_HAVE_SEEK_DATA],
+ [ AC_MSG_CHECKING([for SEEK_DATA])
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+#define _GNU_SOURCE
+#include <sys/types.h>
+#include <unistd.h>
+ ]], [[
+ lseek(-1, 0, SEEK_DATA);
+ ]])],[have_seek_data=yes
+ AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
+ AC_SUBST(have_seek_data)
+ ])
+
+# Check if we have nftw
+AC_DEFUN([AC_HAVE_NFTW],
+ [ AC_MSG_CHECKING([for nftw])
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+#define _GNU_SOURCE
+#include <stddef.h>
+#include <ftw.h>
+ ]], [[
+ nftw("/", (int (*)(const char *, const struct stat *, int, struct FTW *))1, 0, 0);
+ ]])],[have_nftw=yes
+ AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
+ AC_SUBST(have_nftw)
+ ])
+
+# Check if we have RLIMIT_NOFILE
+AC_DEFUN([AC_HAVE_RLIMIT_NOFILE],
+ [ AC_MSG_CHECKING([for RLIMIT_NOFILE])
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+#define _GNU_SOURCE
+#include <sys/time.h>
+#include <sys/resource.h>
+ ]], [[
+ struct rlimit rlimit;
+
+ rlimit.rlim_cur = 0;
+ getrlimit(RLIMIT_NOFILE, &rlimit);
+ ]])],[have_rlimit_nofile=yes
+ AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
+ AC_SUBST(have_rlimit_nofile)
+ ])
diff --git a/m4/package_xfslibs.m4 b/m4/package_xfslibs.m4
index 0746cd1d..8ef58cc0 100644
--- a/m4/package_xfslibs.m4
+++ b/m4/package_xfslibs.m4
@@ -104,3 +104,18 @@ AC_DEFUN([AC_PACKAGE_NEED_XFSCTL_MACRO],
exit 1
])
])
+
+# Check if we have BMV_OF_SHARED from the GETBMAPX ioctl
+AC_DEFUN([AC_HAVE_BMV_OF_SHARED],
+ [ AC_MSG_CHECKING([for BMV_OF_SHARED])
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+#define _GNU_SOURCE
+#include <xfs/xfs.h>
+ ]], [[
+ struct getbmapx obj;
+ ioctl(-1, XFS_IOC_GETBMAPX, &obj);
+ obj.bmv_oflags |= BMV_OF_SHARED;
+ ]])],[have_bmv_of_shared=yes
+ AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
+ AC_SUBST(have_bmv_of_shared)
+ ])