build: check for SEEK_HOLE and SEEK_DATA support
authorDavid Disseldorp <ddiss@samba.org>
Thu, 19 Feb 2015 14:53:56 +0000 (15:53 +0100)
committerJeremy Allison <jra@samba.org>
Mon, 9 Mar 2015 20:27:07 +0000 (21:27 +0100)
SEEK_HOLE and SEEK_DATA will be used in the implementation of
FSCTL_QUERY_ALLOCATED_RANGES support.

"SEEK_DATA and SEEK_HOLE are nonstandard extensions also present
 in Solaris, FreeBSD, and DragonFly BSD; they are proposed for
 inclusion in the next POSIX revision (Issue 8)."

With Linux they are supported on:
-  Btrfs (since Linux 3.1)
-  OCFS (since Linux 3.2)
-  XFS (since Linux 3.5)
-  ext4 (since Linux 3.8)
-  tmpfs (since Linux 3.8)

Signed-off-by: David Disseldorp <ddiss@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/wscript

index 7e02b31f3792403be0010097558b5c3e502b6515..90f5d7ff202c7cc27f44792c39ed40c4c91e70f1 100644 (file)
@@ -522,6 +522,14 @@ return acl_get_perm_np(permset_d, perm);
                 'HAVE_FALLOC_FL_PUNCH_HOLE',
                 msg="Checking whether Linux 'fallocate' supports hole-punching",
                 headers='unistd.h sys/types.h fcntl.h linux/falloc.h')
+
+    conf.CHECK_CODE('''
+            int ret = lseek(0, 0, SEEK_HOLE);
+            ret = lseek(0, 0, SEEK_DATA);''',
+            'HAVE_LSEEK_HOLE_DATA',
+            msg="Checking whether lseek supports hole/data seeking",
+            headers='unistd.h sys/types.h')
+
     conf.CHECK_CODE('''
                 ssize_t err = readahead(0,0,0x80000);''',
                 'HAVE_LINUX_READAHEAD',