@@ -30,6 +30,7 @@ AC_HEADER_STDC
AC_CHECK_HEADERS([ sys/fs/xfs_fsops.h \
sys/fs/xfs_itable.h \
xfs/platform_defs.h \
+ btrfs/ioctl.h \
])
AC_PACKAGE_NEED_UUIDCOMPARE
@@ -30,6 +30,9 @@
#include <stdio.h>
#include <string.h>
#include <errno.h>
+#ifdef HAVE_BTRFS_IOCTL_H
+#include <btrfs/ioctl.h>
+#else
struct btrfs_ioctl_clone_range_args {
int64_t src_fd;
@@ -42,6 +45,7 @@ struct btrfs_ioctl_clone_range_args {
#define BTRFS_IOC_CLONE _IOW(BTRFS_IOCTL_MAGIC, 9, int)
#define BTRFS_IOC_CLONE_RANGE _IOW(BTRFS_IOCTL_MAGIC, 13, \
struct btrfs_ioctl_clone_range_args)
+#endif
static void
usage(char *name, const char *msg)
Check for the btrfsprogs-devel ioctl.h header at configure time. Use it in src/cloner if present, otherwise fall back to using the copied clone ioctl definitions. Signed-off-by: David Disseldorp <ddiss@suse.de> --- configure.ac | 1 + src/cloner.c | 4 ++++ 2 files changed, 5 insertions(+)