summaryrefslogtreecommitdiffstats
path: root/include/linux/mm_compat.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/mm_compat.h')
-rw-r--r--include/linux/mm_compat.h20
1 files changed, 18 insertions, 2 deletions
diff --git a/include/linux/mm_compat.h b/include/linux/mm_compat.h
index 522db827f..07231c9a4 100644
--- a/include/linux/mm_compat.h
+++ b/include/linux/mm_compat.h
@@ -49,11 +49,27 @@
* The function invalidate_inodes() is no longer exported by the kernel.
* The prototype however is still available which means it is safe
* to acquire the symbol's address using spl_kallsyms_lookup_name().
+ *
+ * 2.6.39 API compat,
+ * As for 2.6.39 invalidate_inodes() was updated to take a second
+ * argument which controls how dirty inodes should be handled.
*/
-#ifndef HAVE_INVALIDATE_INODES
+#ifdef HAVE_INVALIDATE_INODES
+# ifdef HAVE_2ARGS_INVALIDATE_INODES
+# define spl_invalidate_inodes(sb, kd) invalidate_inodes(sb, kd)
+# else
+# define spl_invalidate_inodes(sb, kd) invalidate_inodes(sb)
+# endif /* HAVE_2ARGS_INVALIDATE_INODES */
+#else
+# ifdef HAVE_2ARGS_INVALIDATE_INODES
+typedef int (*invalidate_inodes_t)(struct super_block *sb, bool kd);
+extern invalidate_inodes_t invalidate_inodes_fn;
+# define spl_invalidate_inodes(sb, kd) invalidate_inodes_fn(sb, kd)
+# else
typedef int (*invalidate_inodes_t)(struct super_block *sb);
extern invalidate_inodes_t invalidate_inodes_fn;
-#define invalidate_inodes(sb) invalidate_inodes_fn(sb)
+# define spl_invalidate_inodes(sb, kd) invalidate_inodes_fn(sb)
+# endif /* HAVE_2ARGS_INVALIDATE_INODES */
#endif /* HAVE_INVALIDATE_INODES */
/*