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