Simplify BDI integration
authorBrian Behlendorf <behlendorf1@llnl.gov>
Tue, 8 Nov 2011 00:39:03 +0000 (16:39 -0800)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Tue, 8 Nov 2011 18:19:03 +0000 (10:19 -0800)
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 <behlendorf1@llnl.gov>
Closes #367

60 files changed:
Makefile.in
cmd/Makefile.in
cmd/mount_zfs/Makefile.in
cmd/sas_switch_id/Makefile.in
cmd/zdb/Makefile.in
cmd/zfs/Makefile.in
cmd/zinject/Makefile.in
cmd/zpios/Makefile.in
cmd/zpool/Makefile.in
cmd/zpool_id/Makefile.in
cmd/zpool_layout/Makefile.in
cmd/ztest/Makefile.in
cmd/zvol_id/Makefile.in
config/kernel-bdi-setup-and-register.m4 [new file with mode: 0644]
config/kernel.m4
configure
dracut/90zfs/Makefile.in
dracut/Makefile.in
etc/Makefile.in
etc/init.d/Makefile.in
etc/zfs/Makefile.in
include/Makefile.in
include/linux/Makefile.in
include/linux/vfs_compat.h
include/sys/Makefile.in
include/sys/fm/Makefile.in
include/sys/fm/fs/Makefile.in
include/sys/fs/Makefile.in
lib/Makefile.in
lib/libavl/Makefile.in
lib/libefi/Makefile.in
lib/libnvpair/Makefile.in
lib/libshare/Makefile.in
lib/libspl/Makefile.in
lib/libspl/asm-generic/Makefile.in
lib/libspl/asm-i386/Makefile.in
lib/libspl/asm-x86_64/Makefile.in
lib/libspl/include/Makefile.in
lib/libspl/include/ia32/Makefile.in
lib/libspl/include/ia32/sys/Makefile.in
lib/libspl/include/rpc/Makefile.in
lib/libspl/include/sys/Makefile.in
lib/libspl/include/sys/dktp/Makefile.in
lib/libspl/include/sys/sysevent/Makefile.in
lib/libspl/include/util/Makefile.in
lib/libunicode/Makefile.in
lib/libuutil/Makefile.in
lib/libzfs/Makefile.in
lib/libzpool/Makefile.in
man/Makefile.in
man/man8/Makefile.in
module/zfs/zfs_vfsops.c
scripts/Makefile.in
scripts/zpios-profile/Makefile.in
scripts/zpios-test/Makefile.in
scripts/zpool-config/Makefile.in
scripts/zpool-layout/Makefile.in
udev/Makefile.in
udev/rules.d/Makefile.in
zfs_config.h.in

index 3dbb517..17bf078 100644 (file)
@@ -56,6 +56,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index f4038c4..fd5cce5 100644 (file)
@@ -41,6 +41,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index b6dffc3..bb77b15 100644 (file)
@@ -44,6 +44,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index 27a448b..3664f6f 100644 (file)
@@ -43,6 +43,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index 3acec3a..984b690 100644 (file)
@@ -44,6 +44,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index 78b8cd5..bba0748 100644 (file)
@@ -44,6 +44,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index 01c3baf..8de6f75 100644 (file)
@@ -44,6 +44,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index 7fe48cc..49f0ce4 100644 (file)
@@ -44,6 +44,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index 80df098..4d1b60e 100644 (file)
@@ -44,6 +44,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index 6ff1261..21d9e91 100644 (file)
@@ -43,6 +43,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index 0c1069b..76dbf37 100644 (file)
@@ -43,6 +43,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index f11fac6..3046110 100644 (file)
@@ -44,6 +44,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index e0b70ff..9c401fd 100644 (file)
@@ -44,6 +44,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
diff --git a/config/kernel-bdi-setup-and-register.m4 b/config/kernel-bdi-setup-and-register.m4
new file mode 100644 (file)
index 0000000..56fab87
--- /dev/null
@@ -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])],
+               [])
+])
index 5490c87..fec157a 100644 (file)
@@ -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"
index 684a03c..e70651f 100755 (executable)
--- a/configure
+++ b/configure
 
 
 
+       { $as_echo "$as_me:$LINENO: checking whether symbol bdi_setup_and_register is exported" >&5
+$as_echo_n "checking whether symbol bdi_setup_and_register is exported... " >&6; }
+       grep -q -E '[[:space:]]bdi_setup_and_register[[:space:]]' \
+               $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null
+       rc=$?
+       if test $rc -ne 0; then
+
+               export=0
+               for file in mm/backing-dev.c; do
+                       grep -q -E "EXPORT_SYMBOL.*(bdi_setup_and_register)" "$LINUX/$file" 2>/dev/null
+                       rc=$?
+                       if test $rc -eq 0; then
+
+                               export=1
+                               break;
+
+fi
+
+               done
+               if test $export -eq 0; then
+
+                       { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+
+
+else
+
+                       { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_BDI_SETUP_AND_REGISTER 1
+_ACEOF
+
+
+fi
+
+
+else
+
+               { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_BDI_SETUP_AND_REGISTER 1
+_ACEOF
+
+
+fi
+
+
+
+
        if test "$LINUX_OBJ" != "$LINUX"; then
 
                KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$LINUX_OBJ"
 
 
 
+       { $as_echo "$as_me:$LINENO: checking whether symbol bdi_setup_and_register is exported" >&5
+$as_echo_n "checking whether symbol bdi_setup_and_register is exported... " >&6; }
+       grep -q -E '[[:space:]]bdi_setup_and_register[[:space:]]' \
+               $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null
+       rc=$?
+       if test $rc -ne 0; then
+
+               export=0
+               for file in mm/backing-dev.c; do
+                       grep -q -E "EXPORT_SYMBOL.*(bdi_setup_and_register)" "$LINUX/$file" 2>/dev/null
+                       rc=$?
+                       if test $rc -eq 0; then
+
+                               export=1
+                               break;
+
+fi
+
+               done
+               if test $export -eq 0; then
+
+                       { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+
+
+else
+
+                       { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_BDI_SETUP_AND_REGISTER 1
+_ACEOF
+
+
+fi
+
+
+else
+
+               { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_BDI_SETUP_AND_REGISTER 1
+_ACEOF
+
+
+fi
+
+
+
+
        if test "$LINUX_OBJ" != "$LINUX"; then
 
                KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$LINUX_OBJ"
index 905ab50..89e9950 100644 (file)
@@ -42,6 +42,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index 22d3eb3..7a1f45f 100644 (file)
@@ -41,6 +41,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index 6989c23..999f67a 100644 (file)
@@ -41,6 +41,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index a639233..697284f 100644 (file)
@@ -42,6 +42,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index 3f8672d..8975187 100644 (file)
@@ -42,6 +42,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index de3af33..5614daa 100644 (file)
@@ -43,6 +43,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index 7e65511..2666d4f 100644 (file)
@@ -43,6 +43,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index cbbf21e..825a7fd 100644 (file)
@@ -62,23 +62,36 @@ truncate_setsize(struct inode *ip, loff_t new)
 }
 #endif /* HAVE_TRUNCATE_SETSIZE */
 
+#if defined(HAVE_BDI) && !defined(HAVE_BDI_SETUP_AND_REGISTER)
 /*
- * 2.6.32 API change,
- * Added backing_device_info (bdi) per super block interfaces.  When
- * available a bdi must be configured when using a non-device backed
- * filesystem for proper writeback.  It's safe to leave this code
- * dormant for kernels which only support pdflush and not bdi.
+ * 2.6.34 API change,
+ * Add bdi_setup_and_register() function if not yet provided by kernel.
+ * It is used to quickly initialize and register a BDI for the filesystem.
  */
-#ifdef HAVE_BDI
-#define        bdi_get_sb(sb)                          (sb->s_bdi)
-#define        bdi_put_sb(sb, bdi)                     (sb->s_bdi = bdi)
-#else
-#define        bdi_init(bdi)                           (0)
-#define        bdi_destroy(bdi)                        (0)
-#define        bdi_register(bdi, parent, fmt, args)    (0)
-#define        bdi_unregister(bdi)                     (0)
-#define        bdi_get_sb(sb)                          (0)
-#define        bdi_put_sb(sb, bdi)                     (0)
-#endif /* HAVE_BDI */
+extern atomic_long_t zfs_bdi_seq;
+
+static inline int
+bdi_setup_and_register(struct backing_dev_info *bdi,char *name,unsigned int cap)
+{
+       char tmp[32];
+       int error;
+
+       bdi->name = name;
+       bdi->capabilities = cap;
+       error = bdi_init(bdi);
+       if (error)
+               return (error);
+
+       sprintf(tmp, "%.28s%s", name, "-%d");
+       error = bdi_register(bdi, NULL, tmp,
+           atomic_long_inc_return(&zfs_bdi_seq));
+       if (error) {
+               bdi_destroy(bdi);
+               return (error);
+       }
+
+       return (error);
+}
+#endif /* HAVE_BDI && !HAVE_BDI_SETUP_AND_REGISTER */
 
 #endif /* _ZFS_VFS_H */
index 6adc1ee..0a5ecc3 100644 (file)
@@ -43,6 +43,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index 036fd47..7791750 100644 (file)
@@ -43,6 +43,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index 2cff6d6..ee4a8fd 100644 (file)
@@ -43,6 +43,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index fd9c146..9d3f79a 100644 (file)
@@ -43,6 +43,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index 86b0aef..0c919dd 100644 (file)
@@ -41,6 +41,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index 5135c87..43e7ac5 100644 (file)
@@ -43,6 +43,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index 25d61b2..50d4971 100644 (file)
@@ -43,6 +43,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index 691c081..9ce8485 100644 (file)
@@ -43,6 +43,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index 0025019..3705c7d 100644 (file)
@@ -43,6 +43,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index 92be7c1..d2f6231 100644 (file)
@@ -43,6 +43,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index 8fed7b6..003b5ec 100644 (file)
@@ -42,6 +42,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index 703cbf5..cd415e1 100644 (file)
@@ -43,6 +43,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index ff5ba0f..df8e8f9 100644 (file)
@@ -43,6 +43,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index 6891306..87293bf 100644 (file)
@@ -43,6 +43,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index a758a73..2f14b4a 100644 (file)
@@ -41,6 +41,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index 7d9c283..d01d7da 100644 (file)
@@ -43,6 +43,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index d15599a..baaa5a0 100644 (file)
@@ -43,6 +43,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index 3007306..ac69160 100644 (file)
@@ -43,6 +43,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index 4f85865..91e1059 100644 (file)
@@ -43,6 +43,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index d254e86..db38bb0 100644 (file)
@@ -43,6 +43,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index d9d313f..dca1d4a 100644 (file)
@@ -43,6 +43,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index 757f76b..af101e3 100644 (file)
@@ -43,6 +43,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index 391ad4b..27b02d1 100644 (file)
@@ -43,6 +43,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index 3c3c399..cdaab94 100644 (file)
@@ -43,6 +43,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index ec612ee..bb20477 100644 (file)
@@ -43,6 +43,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index c1c9ca3..52952b1 100644 (file)
@@ -41,6 +41,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index 48dba3f..9a99677 100644 (file)
@@ -41,6 +41,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index ed847f1..920d87e 100644 (file)
@@ -600,12 +600,6 @@ zfs_sb_create(const char *osname, zfs_sb_t **zsbp)
        zsb->z_show_ctldir = ZFS_SNAPDIR_VISIBLE;
        zsb->z_os = os;
 
-       error = -bdi_init(&zsb->z_bdi);
-       if (error) {
-               kmem_free(zsb, sizeof (zfs_sb_t));
-               return (error);
-       }
-
        error = zfs_get_zplprop(os, ZFS_PROP_VERSION, &zsb->z_version);
        if (error) {
                goto out;
@@ -807,7 +801,6 @@ zfs_sb_free(zfs_sb_t *zsb)
 
        zfs_fuid_destroy(zsb);
 
-       bdi_destroy(&zsb->z_bdi);
        mutex_destroy(&zsb->z_znodes_lock);
        mutex_destroy(&zsb->z_lock);
        list_destroy(&zsb->z_all_znodes);
@@ -1089,9 +1082,9 @@ zfs_sb_teardown(zfs_sb_t *zsb, boolean_t unmounting)
 }
 EXPORT_SYMBOL(zfs_sb_teardown);
 
-#ifdef HAVE_BDI
-static atomic_long_t bdi_seq = ATOMIC_LONG_INIT(0);
-#endif /* HAVE_BDI */
+#if defined(HAVE_BDI) && !defined(HAVE_BDI_SETUP_AND_REGISTER)
+atomic_long_t zfs_bdi_seq = ATOMIC_LONG_INIT(0);
+#endif /* HAVE_BDI && !HAVE_BDI_SETUP_AND_REGISTER */
 
 int
 zfs_domount(struct super_block *sb, void *data, int silent)
@@ -1118,7 +1111,23 @@ zfs_domount(struct super_block *sb, void *data, int silent)
        sb->s_time_gran = 1;
        sb->s_blocksize = recordsize;
        sb->s_blocksize_bits = ilog2(recordsize);
-       bdi_put_sb(sb, NULL);
+
+#ifdef HAVE_BDI
+       /*
+        * 2.6.32 API change,
+        * Added backing_device_info (BDI) per super block interfaces.  A BDI
+        * must be configured when using a non-device backed filesystem for
+        * proper writeback.  This is not required for older pdflush kernels.
+        *
+        * NOTE: Linux read-ahead is disabled in favor of zfs read-ahead.
+        */
+       zsb->z_bdi.ra_pages = 0;
+       sb->s_bdi = &zsb->z_bdi;
+
+       error = -bdi_setup_and_register(&zsb->z_bdi, "zfs", BDI_CAP_MAP_COPY);
+       if (error)
+               goto out;
+#endif /* HAVE_BDI */
 
        /* Set callback operations for the file system. */
        sb->s_op = &zpl_super_operations;
@@ -1143,16 +1152,6 @@ zfs_domount(struct super_block *sb, void *data, int silent)
                dmu_objset_set_user(zsb->z_os, zsb);
                mutex_exit(&zsb->z_os->os_user_ptr_lock);
        } else {
-               /* Disable Linux read-ahead handled by lower layers */
-               zsb->z_bdi.ra_pages = 0;
-
-               error = -bdi_register(&zsb->z_bdi, NULL, "zfs-%d",
-                   atomic_long_inc_return(&bdi_seq));
-               if (error)
-                       goto out;
-
-               bdi_put_sb(sb, &zsb->z_bdi);
-
                error = zfs_sb_setup(zsb, B_TRUE);
 #ifdef HAVE_SNAPSHOT
                (void) zfs_snap_create(zsb);
@@ -1193,10 +1192,9 @@ zfs_umount(struct super_block *sb)
        VERIFY(zfs_sb_teardown(zsb, B_TRUE) == 0);
        os = zsb->z_os;
 
-       if (bdi_get_sb(sb)) {
-               bdi_unregister(bdi_get_sb(sb));
-               bdi_put_sb(sb, NULL);
-       }
+#ifdef HAVE_BDI
+       bdi_destroy(sb->s_bdi);
+#endif /* HAVE_BDI */
 
        /*
         * z_os will be NULL if there was an error in
index 6994a48..8b9a832 100644 (file)
@@ -42,6 +42,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index f172314..b154c9c 100644 (file)
@@ -42,6 +42,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index f48d9cc..9408ad2 100644 (file)
@@ -42,6 +42,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index 4930111..8e9d3fd 100644 (file)
@@ -42,6 +42,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index ea73f33..f083be7 100644 (file)
@@ -42,6 +42,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index ff7fb61..e34da72 100644 (file)
@@ -41,6 +41,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index a91f67e..47b84a1 100644 (file)
@@ -42,6 +42,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
        $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
        $(top_srcdir)/config/kernel-bdi.m4 \
        $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
        $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
index cf3c25c..6f18dca 100644 (file)
@@ -21,6 +21,9 @@
 /* struct super_block has s_bdi */
 #undef HAVE_BDI
 
+/* bdi_setup_and_register() is available */
+#undef HAVE_BDI_SETUP_AND_REGISTER
+
 /* bio_empy_barrier() is defined */
 #undef HAVE_BIO_EMPTY_BARRIER