summaryrefslogtreecommitdiffstats
path: root/config/kernel-elevator-change.m4
diff options
context:
space:
mode:
authorBrian Behlendorf <[email protected]>2012-08-27 03:38:06 +0700
committerBrian Behlendorf <[email protected]>2012-10-03 13:31:44 -0700
commit6d1d976b2c2c6b80de75a480c998466068066846 (patch)
treec3e3ad57601ff7c63f682a68165c7a80d3a1c139 /config/kernel-elevator-change.m4
parent2f342404c157f130129784f2592eaadf0930beab (diff)
Modify vdev_elevator_switch() to use elevator_change()
As of Linux 2.6.36 an elevator_change() interface was added. This commit updates vdev_elevator_switch() to use this interface when available, otherwise it falls back to the usermodehelper method. Original-patch-by: foobarz <sysop@xeon.(none)> Signed-off-by: Brian Behlendorf <[email protected]> Closes #906
Diffstat (limited to 'config/kernel-elevator-change.m4')
-rw-r--r--config/kernel-elevator-change.m425
1 files changed, 25 insertions, 0 deletions
diff --git a/config/kernel-elevator-change.m4 b/config/kernel-elevator-change.m4
new file mode 100644
index 000000000..90ab51b2e
--- /dev/null
+++ b/config/kernel-elevator-change.m4
@@ -0,0 +1,25 @@
+dnl #
+dnl # 2.6.36 API change
+dnl # Verify the elevator_change() symbol is available.
+dnl #
+AC_DEFUN([ZFS_AC_KERNEL_ELEVATOR_CHANGE], [
+ AC_MSG_CHECKING([whether elevator_change() is available])
+ tmp_flags="$EXTRA_KCFLAGS"
+ EXTRA_KCFLAGS="-Wno-unused-but-set-variable"
+ ZFS_LINUX_TRY_COMPILE([
+ #include <linux/blkdev.h>
+ #include <linux/elevator.h>
+ ],[
+ int ret;
+ struct request_queue *q = NULL;
+ char *elevator = NULL;
+ ret = elevator_change(q, elevator);
+ ],[
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_ELEVATOR_CHANGE, 1,
+ [elevator_change() is available])
+ ],[
+ AC_MSG_RESULT(no)
+ ])
+ EXTRA_KCFLAGS="$tmp_flags"
+])