diff options
author | Brian Behlendorf <[email protected]> | 2012-08-27 03:38:06 +0700 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2012-10-03 13:31:44 -0700 |
commit | 6d1d976b2c2c6b80de75a480c998466068066846 (patch) | |
tree | c3e3ad57601ff7c63f682a68165c7a80d3a1c139 /config | |
parent | 2f342404c157f130129784f2592eaadf0930beab (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')
-rw-r--r-- | config/kernel-elevator-change.m4 | 25 | ||||
-rw-r--r-- | config/kernel.m4 | 1 |
2 files changed, 26 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" +]) diff --git a/config/kernel.m4 b/config/kernel.m4 index 262dc7fcb..89b0a9806 100644 --- a/config/kernel.m4 +++ b/config/kernel.m4 @@ -67,6 +67,7 @@ AC_DEFUN([ZFS_AC_CONFIG_KERNEL], [ ZFS_AC_KERNEL_BDI ZFS_AC_KERNEL_BDI_SETUP_AND_REGISTER ZFS_AC_KERNEL_SET_NLINK + ZFS_AC_KERNEL_ELEVATOR_CHANGE AS_IF([test "$LINUX_OBJ" != "$LINUX"], [ KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$LINUX_OBJ" |