]> git.proxmox.com Git - mirror_zfs-debian.git/blobdiff - config/kernel-dentry-operations.m4
Move zfs-zed init script back to zfs-zed ...
[mirror_zfs-debian.git] / config / kernel-dentry-operations.m4
index 5685b7d6fab3c6800d1fb99f6e9a612a57600e38..61f5a27af5a782baef51f903794eecc60920d704 100644 (file)
@@ -5,11 +5,16 @@ AC_DEFUN([ZFS_AC_KERNEL_D_REVALIDATE_NAMEIDATA], [
        AC_MSG_CHECKING([whether dops->d_revalidate() takes struct nameidata])
        ZFS_LINUX_TRY_COMPILE([
                #include <linux/dcache.h>
-       ],[
-               int (*revalidate) (struct dentry *, struct nameidata *) = NULL;
-               struct dentry_operations dops __attribute__ ((unused)) = {
-                       .d_revalidate           = revalidate,
+               #include <linux/sched.h>
+
+               int revalidate (struct dentry *dentry,
+                   struct nameidata *nidata) { return 0; }
+
+               static const struct dentry_operations
+                   dops __attribute__ ((unused)) = {
+                       .d_revalidate   = revalidate,
                };
+       ],[
        ],[
                AC_MSG_RESULT(yes)
                AC_DEFINE(HAVE_D_REVALIDATE_NAMEIDATA, 1,
@@ -62,3 +67,22 @@ AC_DEFUN([ZFS_AC_KERNEL_D_SET_D_OP],
                AC_MSG_RESULT(no)
        ])
 ])
+
+dnl #
+dnl # 2.6.38 API chage
+dnl # Added sb->s_d_op default dentry_operations member
+dnl #
+AC_DEFUN([ZFS_AC_KERNEL_S_D_OP],
+       [AC_MSG_CHECKING([whether super_block has s_d_op])
+       ZFS_LINUX_TRY_COMPILE([
+               #include <linux/fs.h>
+       ],[
+               struct super_block sb __attribute__ ((unused));
+               sb.s_d_op = NULL;
+       ], [
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_S_D_OP, 1, [struct super_block has s_d_op])
+       ], [
+               AC_MSG_RESULT(no)
+       ])
+])