X-Git-Url: https://git.camperquake.de/gitweb.cgi?a=blobdiff_plain;f=config%2Fkernel-fsync.m4;fp=config%2Fkernel-fsync.m4;h=e1f2d68b9b1f5361e28d66bc75dea9eb49600ca8;hb=c38367c73f592ca9729ba0d5e70b5e3bc67e0745;hp=ca00d93beaaf6d9379c52c7febea32f0adca1007;hpb=8128bd89fb487d91a3335605b009ac2b7d5aecd3;p=zfs.git diff --git a/config/kernel-fsync.m4 b/config/kernel-fsync.m4 index ca00d93..e1f2d68 100644 --- a/config/kernel-fsync.m4 +++ b/config/kernel-fsync.m4 @@ -4,11 +4,15 @@ dnl # AC_DEFUN([ZFS_AC_KERNEL_FSYNC_WITH_DENTRY], [ ZFS_LINUX_TRY_COMPILE([ #include - ],[ - int (*fsync) (struct file *, struct dentry *, int) = NULL; - struct file_operations fops __attribute__ ((unused)); - fops.fsync = fsync; + int test_fsync(struct file *f, struct dentry *dentry, int x) + { return 0; } + + static const struct file_operations + fops __attribute__ ((unused)) = { + .fsync = test_fsync, + }; + ],[ ],[ AC_MSG_RESULT([dentry]) AC_DEFINE(HAVE_FSYNC_WITH_DENTRY, 1, @@ -23,11 +27,14 @@ dnl # AC_DEFUN([ZFS_AC_KERNEL_FSYNC_WITHOUT_DENTRY], [ ZFS_LINUX_TRY_COMPILE([ #include - ],[ - int (*fsync) (struct file *, int) = NULL; - struct file_operations fops __attribute__ ((unused)); - fops.fsync = fsync; + int test_fsync(struct file *f, int x) { return 0; } + + static const struct file_operations + fops __attribute__ ((unused)) = { + .fsync = test_fsync, + }; + ],[ ],[ AC_MSG_RESULT([no dentry]) AC_DEFINE(HAVE_FSYNC_WITHOUT_DENTRY, 1, @@ -42,68 +49,15 @@ dnl # AC_DEFUN([ZFS_AC_KERNEL_FSYNC_RANGE], [ ZFS_LINUX_TRY_COMPILE([ #include - ],[ - int (*fsync) (struct file *, loff_t, loff_t, int) = NULL; - struct file_operations fops __attribute__ ((unused)); - - fops.fsync = fsync; - ],[ - AC_MSG_RESULT([range]) - AC_DEFINE(HAVE_FSYNC_RANGE, 1, - [fops->fsync() with range]) - ],[ - ]) -]) -dnl # -dnl # PaX Linux 2.6.x - 2.6.34 API -dnl # -AC_DEFUN([ZFS_AC_PAX_KERNEL_FSYNC_WITH_DENTRY], [ - ZFS_LINUX_TRY_COMPILE([ - #include - ],[ - int (*fsync) (struct file *, struct dentry *, int) = NULL; - file_operations_no_const fops __attribute__ ((unused)); + int test_fsync(struct file *f, loff_t a, loff_t b, int c) + { return 0; } - fops.fsync = fsync; - ],[ - AC_MSG_RESULT([dentry]) - AC_DEFINE(HAVE_FSYNC_WITH_DENTRY, 1, - [fops->fsync() with dentry]) + static const struct file_operations + fops __attribute__ ((unused)) = { + .fsync = test_fsync, + }; ],[ - ]) -]) - -dnl # -dnl # PaX Linux 2.6.35 - Linux 3.0 API -dnl # -AC_DEFUN([ZFS_AC_PAX_KERNEL_FSYNC_WITHOUT_DENTRY], [ - ZFS_LINUX_TRY_COMPILE([ - #include - ],[ - int (*fsync) (struct file *, int) = NULL; - file_operations_no_const fops __attribute__ ((unused)); - - fops.fsync = fsync; - ],[ - AC_MSG_RESULT([no dentry]) - AC_DEFINE(HAVE_FSYNC_WITHOUT_DENTRY, 1, - [fops->fsync() without dentry]) - ],[ - ]) -]) - -dnl # -dnl # PaX Linux 3.1 - 3.x API -dnl # -AC_DEFUN([ZFS_AC_PAX_KERNEL_FSYNC_RANGE], [ - ZFS_LINUX_TRY_COMPILE([ - #include - ],[ - int (*fsync) (struct file *, loff_t, loff_t, int) = NULL; - file_operations_no_const fops __attribute__ ((unused)); - - fops.fsync = fsync; ],[ AC_MSG_RESULT([range]) AC_DEFINE(HAVE_FSYNC_RANGE, 1, @@ -117,7 +71,4 @@ AC_DEFUN([ZFS_AC_KERNEL_FSYNC], [ ZFS_AC_KERNEL_FSYNC_WITH_DENTRY ZFS_AC_KERNEL_FSYNC_WITHOUT_DENTRY ZFS_AC_KERNEL_FSYNC_RANGE - ZFS_AC_PAX_KERNEL_FSYNC_WITH_DENTRY - ZFS_AC_PAX_KERNEL_FSYNC_WITHOUT_DENTRY - ZFS_AC_PAX_KERNEL_FSYNC_RANGE ])