]> git.proxmox.com Git - mirror_spl.git/blobdiff - config/spl-build.m4
Linux 3.9 compat: vfs_getattr takes two arguments
[mirror_spl.git] / config / spl-build.m4
index eef3a76aeaa7584057477d4fab3364061b36a1cb..83cefabd422ffcf42bcc688b18c1c97f7cea2b99 100644 (file)
@@ -89,6 +89,7 @@ AC_DEFUN([SPL_AC_CONFIG_KERNEL], [
        SPL_AC_SHRINK_CONTROL_STRUCT
        SPL_AC_RWSEM_SPINLOCK_IS_RAW
        SPL_AC_SCHED_RT_HEADER
+       SPL_AC_2ARGS_VFS_GETATTR
 ])
 
 AC_DEFUN([SPL_AC_MODULE_SYMVERS], [
@@ -2237,3 +2238,34 @@ AC_DEFUN([SPL_AC_SCHED_RT_HEADER],
                AC_MSG_RESULT(no)
        ])
 ])
+
+dnl #
+dnl # 3.9 API change,
+dnl # vfs_getattr() uses 2 args
+dnl # It takes struct path * instead of struct vfsmount * and struct dentry *
+dnl #
+AC_DEFUN([SPL_AC_2ARGS_VFS_GETATTR], [
+       AC_MSG_CHECKING([whether vfs_getattr() wants])
+       SPL_LINUX_TRY_COMPILE([
+               #include <linux/fs.h>
+       ],[
+               vfs_getattr((struct path *) NULL,
+                       (struct kstat *)NULL);
+       ],[
+               AC_MSG_RESULT(2 args)
+               AC_DEFINE(HAVE_2ARGS_VFS_GETATTR, 1,
+                         [vfs_getattr wants 2 args])
+       ],[
+               SPL_LINUX_TRY_COMPILE([
+                       #include <linux/fs.h>
+               ],[
+                       vfs_getattr((struct vfsmount *)NULL,
+                               (struct dentry *)NULL,
+                               (struct kstat *)NULL);
+               ],[
+                       AC_MSG_RESULT(3 args)
+               ],[
+                       AC_MSG_ERROR(unknown)
+               ])
+       ])
+])