summaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
authorBrian Behlendorf <[email protected]>2011-11-07 16:39:03 -0800
committerBrian Behlendorf <[email protected]>2011-11-08 10:19:03 -0800
commit5547c2f1bf49802835fd6c52f15115ba344a2a8b (patch)
tree7e2314465d7a0ad5b6922c1d385b6c8ffa4e7979 /config
parent591fb62f19ee2431983a4cbeb0d200b1b8e7daf5 (diff)
Simplify BDI integration
Update the code to use the bdi_setup_and_register() helper to simplify the bdi integration code. The updated code now just registers the bdi during mount and destroys it during unmount. The only complication is that for 2.6.32 - 2.6.33 kernels the helper wasn't available so in these cases the zfs code must provide it. Luckily the bdi_setup_and_register() function is trivial. Signed-off-by: Brian Behlendorf <[email protected]> Closes #367
Diffstat (limited to 'config')
-rw-r--r--config/kernel-bdi-setup-and-register.m415
-rw-r--r--config/kernel.m41
2 files changed, 16 insertions, 0 deletions
diff --git a/config/kernel-bdi-setup-and-register.m4 b/config/kernel-bdi-setup-and-register.m4
new file mode 100644
index 000000000..56fab8757
--- /dev/null
+++ b/config/kernel-bdi-setup-and-register.m4
@@ -0,0 +1,15 @@
+dnl #
+dnl # 2.6.34 API change
+dnl # The bdi_setup_and_register() helper function is avilable and
+dnl # exported by the kernel. This is a trivial helper function but
+dnl # using it significantly simplifies the code surrounding setting
+dnl # up and tearing down the bdi structure.
+dnl #
+AC_DEFUN([ZFS_AC_KERNEL_BDI_SETUP_AND_REGISTER], [
+ ZFS_CHECK_SYMBOL_EXPORT(
+ [bdi_setup_and_register],
+ [mm/backing-dev.c],
+ [AC_DEFINE(HAVE_BDI_SETUP_AND_REGISTER, 1,
+ [bdi_setup_and_register() is available])],
+ [])
+])
diff --git a/config/kernel.m4 b/config/kernel.m4
index 5490c8733..fec157a0c 100644
--- a/config/kernel.m4
+++ b/config/kernel.m4
@@ -41,6 +41,7 @@ AC_DEFUN([ZFS_AC_CONFIG_KERNEL], [
ZFS_AC_KERNEL_6ARGS_SECURITY_INODE_INIT_SECURITY
ZFS_AC_KERNEL_MOUNT_NODEV
ZFS_AC_KERNEL_BDI
+ ZFS_AC_KERNEL_BDI_SETUP_AND_REGISTER
AS_IF([test "$LINUX_OBJ" != "$LINUX"], [
KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$LINUX_OBJ"