])
])
+# 2.6.27 has bdi_init()/bdi_destroy() functions.
+AC_DEFUN([LC_EXPORT_BDI_INIT],
+[LB_CHECK_SYMBOL_EXPORT([bdi_init],
+[mm/backing-dev.c],[
+ AC_DEFINE(HAVE_BDI_INIT, 1,
+ [bdi_init/bdi_destroy functions are present])
+],[
+])
+])
+
# 2.6.29 change prepare/commit_write to write_begin/end
AC_DEFUN([LC_WRITE_BEGIN_END],
[AC_MSG_CHECKING([if kernel has .write_begin/end])
LC_VFS_SYMLINK_5ARGS
LC_SB_ANY_QUOTA_ACTIVE
LC_SB_HAS_QUOTA_ACTIVE
+ LC_EXPORT_BDI_INIT
#2.6.29
LC_WRITE_BEGIN_END
if (err)
GOTO(out_free, err);
- memset(&lsi->bdi, 0, sizeof(lsi->bdi));
-#ifdef HAVE_NEW_BACKING_DEV_INFO
- lsi->bdi.name = "lustre",
- lsi->bdi.capabilities = BDI_CAP_MAP_COPY,
+#ifdef HAVE_BDI_INIT
err = bdi_init(&lsi->bdi);
if (err)
GOTO(out_free, err);
-
+#endif
+#ifdef HAVE_NEW_BACKING_DEV_INFO
+ lsi->bdi.name = "lustre";
+ lsi->bdi.capabilities = BDI_CAP_MAP_COPY;
err = bdi_register(&lsi->bdi, NULL, "lustre-%d",
atomic_inc_return(&ll_bdi_num));
- if (err) {
- bdi_destroy(&lsi->bdi);
- GOTO(out_free, err);
- }
sb->s_bdi = &lsi->bdi;
#endif
class_del_profile(profilenm);
#ifdef HAVE_NEW_BACKING_DEV_INFO
- if (lsi->bdi.wb_cnt > 0)
+ if (lsi->bdi.wb_cnt > 0) {
+#endif
+#ifdef HAVE_BDI_INIT
bdi_destroy(&lsi->bdi);
#endif
+#ifdef HAVE_NEW_BACKING_DEV_INFO
+ }
+#endif
ll_free_sbi(sb);
lsi->lsi_llsbi = NULL;