summaryrefslogtreecommitdiffstats
path: root/config/kernel-blk-queue-flush.m4
diff options
context:
space:
mode:
Diffstat (limited to 'config/kernel-blk-queue-flush.m4')
-rw-r--r--config/kernel-blk-queue-flush.m455
1 files changed, 47 insertions, 8 deletions
diff --git a/config/kernel-blk-queue-flush.m4 b/config/kernel-blk-queue-flush.m4
index bb74ea1c5..1baab83a4 100644
--- a/config/kernel-blk-queue-flush.m4
+++ b/config/kernel-blk-queue-flush.m4
@@ -22,25 +22,64 @@ AC_DEFUN([ZFS_AC_KERNEL_BLK_QUEUE_FLUSH], [
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_BLK_QUEUE_FLUSH, 1,
[blk_queue_flush() is available])
+
+ AC_MSG_CHECKING([whether blk_queue_flush() is GPL-only])
+ ZFS_LINUX_TRY_COMPILE([
+ #include <linux/module.h>
+ #include <linux/blkdev.h>
+
+ MODULE_LICENSE("$ZFS_META_LICENSE");
+ ],[
+ struct request_queue *q = NULL;
+ (void) blk_queue_flush(q, REQ_FLUSH);
+ ],[
+ AC_MSG_RESULT(no)
+ ],[
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_BLK_QUEUE_FLUSH_GPL_ONLY, 1,
+ [blk_queue_flush() is GPL-only])
+ ])
],[
AC_MSG_RESULT(no)
])
- AC_MSG_CHECKING([whether blk_queue_flush() is GPL-only])
+ dnl #
+ dnl # 4.7 API change
+ dnl # Replace blk_queue_flush with blk_queue_write_cache
+ dnl #
+ AC_MSG_CHECKING([whether blk_queue_write_cache() exists])
ZFS_LINUX_TRY_COMPILE([
- #include <linux/module.h>
+ #include <linux/kernel.h>
#include <linux/blkdev.h>
- MODULE_LICENSE("$ZFS_META_LICENSE");
],[
struct request_queue *q = NULL;
- (void) blk_queue_flush(q, REQ_FLUSH);
- ],[
- AC_MSG_RESULT(no)
+ blk_queue_write_cache(q, true, true);
],[
AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_BLK_QUEUE_FLUSH_GPL_ONLY, 1,
- [blk_queue_flush() is GPL-only])
+ AC_DEFINE(HAVE_BLK_QUEUE_WRITE_CACHE, 1,
+ [blk_queue_write_cache() exists])
+
+ AC_MSG_CHECKING([whether blk_queue_write_cache() is GPL-only])
+ ZFS_LINUX_TRY_COMPILE([
+ #include <linux/kernel.h>
+ #include <linux/module.h>
+ #include <linux/blkdev.h>
+
+ MODULE_LICENSE("$ZFS_META_LICENSE");
+ ],[
+ struct request_queue *q = NULL;
+ blk_queue_write_cache(q, true, true);
+ ],[
+ AC_MSG_RESULT(no)
+ ],[
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_BLK_QUEUE_WRITE_CACHE_GPL_ONLY, 1,
+ [blk_queue_write_cache() is GPL-only])
+ ])
+ ],[
+ AC_MSG_RESULT(no)
])
+
EXTRA_KCFLAGS="$tmp_flags"
])