btrfs.c: fix build on systems without BTRFS_IOC_FILE_EXTENT_SAME
* btrfs.c (btrfs_ioctl): Skip BTRFS_IOC_FILE_EXTENT_SAME case
if this constant is not defined.
* tests/btrfs.c (btrfs_test_extent_same_ioctl): Skip this part
of the test if BTRFS_IOC_FILE_EXTENT_SAME is not defined.
diff --git a/btrfs.c b/btrfs.c
index f45bf22..c1c9592 100644
--- a/btrfs.c
+++ b/btrfs.c
@@ -1333,7 +1333,9 @@
case BTRFS_IOC_CLONE: /* FICLONE */
case BTRFS_IOC_CLONE_RANGE: /* FICLONERANGE */
+#ifdef BTRFS_IOC_FILE_EXTENT_SAME
case BTRFS_IOC_FILE_EXTENT_SAME: /* FIDEDUPERANGE */
+#endif
/*
* FICLONE, FICLONERANGE, and FIDEDUPERANGE started out as
* btrfs ioctls and the code was kept for the generic
diff --git a/tests/btrfs.c b/tests/btrfs.c
index cf4fce9..706b97b 100644
--- a/tests/btrfs.c
+++ b/tests/btrfs.c
@@ -1574,6 +1574,7 @@
static void
btrfs_test_extent_same_ioctl(void)
{
+#ifdef BTRFS_IOC_FILE_EXTENT_SAME
struct file_dedupe_range args = {
.src_offset = 1024,
.src_length = 10240,
@@ -1689,6 +1690,7 @@
close(fd2);
}
free(argsp);
+#endif /* BTRFS_IOC_FILE_EXTENT_SAME */
}
static void