The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/openzfs/config/kernel-dentry-operations.m4

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 dnl #
    2 dnl # 3.4.0 API change
    3 dnl # Added d_make_root() to replace previous d_alloc_root() function.
    4 dnl #
    5 AC_DEFUN([ZFS_AC_KERNEL_SRC_D_MAKE_ROOT], [
    6         ZFS_LINUX_TEST_SRC([d_make_root], [
    7                 #include <linux/dcache.h>
    8         ], [
    9                 d_make_root(NULL);
   10         ])
   11 ])
   12 
   13 AC_DEFUN([ZFS_AC_KERNEL_D_MAKE_ROOT], [
   14         AC_MSG_CHECKING([whether d_make_root() is available])
   15         ZFS_LINUX_TEST_RESULT_SYMBOL([d_make_root],
   16             [d_make_root], [fs/dcache.c], [
   17                 AC_MSG_RESULT(yes)
   18                 AC_DEFINE(HAVE_D_MAKE_ROOT, 1, [d_make_root() is available])
   19         ], [
   20                 AC_MSG_RESULT(no)
   21         ])
   22 ])
   23 
   24 dnl #
   25 dnl # 2.6.28 API change
   26 dnl # Added d_obtain_alias() helper function.
   27 dnl #
   28 AC_DEFUN([ZFS_AC_KERNEL_SRC_D_OBTAIN_ALIAS], [
   29         ZFS_LINUX_TEST_SRC([d_obtain_alias], [
   30                 #include <linux/dcache.h>
   31         ], [
   32                 d_obtain_alias(NULL);
   33         ])
   34 ])
   35 
   36 AC_DEFUN([ZFS_AC_KERNEL_D_OBTAIN_ALIAS], [
   37         AC_MSG_CHECKING([whether d_obtain_alias() is available])
   38         ZFS_LINUX_TEST_RESULT_SYMBOL([d_obtain_alias],
   39             [d_obtain_alias], [fs/dcache.c], [
   40                 AC_MSG_RESULT(yes)
   41         ], [
   42                 ZFS_LINUX_TEST_ERROR([d_obtain_alias()])
   43         ])
   44 ])
   45 
   46 dnl #
   47 dnl # 2.6.12 API change
   48 dnl # d_prune_aliases() helper function available.
   49 dnl #
   50 AC_DEFUN([ZFS_AC_KERNEL_SRC_D_PRUNE_ALIASES], [
   51         ZFS_LINUX_TEST_SRC([d_prune_aliases], [
   52                 #include <linux/dcache.h>
   53         ], [
   54                 struct inode *ip = NULL;
   55                 d_prune_aliases(ip);
   56         ])
   57 ])
   58 
   59 AC_DEFUN([ZFS_AC_KERNEL_D_PRUNE_ALIASES], [
   60         AC_MSG_CHECKING([whether d_prune_aliases() is available])
   61         ZFS_LINUX_TEST_RESULT_SYMBOL([d_prune_aliases],
   62             [d_prune_aliases], [fs/dcache.c], [
   63                 AC_MSG_RESULT(yes)
   64                 AC_DEFINE(HAVE_D_PRUNE_ALIASES, 1,
   65                     [d_prune_aliases() is available])
   66         ], [
   67                 ZFS_LINUX_TEST_ERROR([d_prune_aliases()])
   68         ])
   69 ])
   70 
   71 dnl #
   72 dnl # 2.6.38 API change
   73 dnl # Added d_set_d_op() helper function.
   74 dnl #
   75 AC_DEFUN([ZFS_AC_KERNEL_SRC_D_SET_D_OP], [
   76         ZFS_LINUX_TEST_SRC([d_set_d_op], [
   77                 #include <linux/dcache.h>
   78         ], [
   79                 d_set_d_op(NULL, NULL);
   80         ])
   81 ])
   82 
   83 AC_DEFUN([ZFS_AC_KERNEL_D_SET_D_OP], [
   84         AC_MSG_CHECKING([whether d_set_d_op() is available])
   85         ZFS_LINUX_TEST_RESULT_SYMBOL([d_set_d_op],
   86             [d_set_d_op], [fs/dcache.c], [
   87                 AC_MSG_RESULT(yes)
   88         ], [
   89                 ZFS_LINUX_TEST_ERROR([d_set_d_op])
   90         ])
   91 ])
   92 
   93 dnl #
   94 dnl # 3.6 API change
   95 dnl #
   96 AC_DEFUN([ZFS_AC_KERNEL_SRC_D_REVALIDATE_NAMEIDATA], [
   97         ZFS_LINUX_TEST_SRC([dentry_operations_revalidate], [
   98                 #include <linux/dcache.h>
   99                 #include <linux/sched.h>
  100 
  101                 int revalidate (struct dentry *dentry,
  102                     struct nameidata *nidata) { return 0; }
  103 
  104                 static const struct dentry_operations
  105                     dops __attribute__ ((unused)) = {
  106                         .d_revalidate   = revalidate,
  107                 };
  108         ],[])
  109 ])
  110 
  111 AC_DEFUN([ZFS_AC_KERNEL_D_REVALIDATE_NAMEIDATA], [
  112         AC_MSG_CHECKING([whether dops->d_revalidate() takes struct nameidata])
  113         ZFS_LINUX_TEST_RESULT([dentry_operations_revalidate], [
  114                 AC_MSG_RESULT(yes)
  115                 AC_DEFINE(HAVE_D_REVALIDATE_NAMEIDATA, 1,
  116                     [dops->d_revalidate() operation takes nameidata])
  117         ],[
  118                 AC_MSG_RESULT(no)
  119         ])
  120 ])
  121 
  122 dnl #
  123 dnl # 2.6.30 API change
  124 dnl # The 'struct dentry_operations' was constified in the dentry structure.
  125 dnl #
  126 AC_DEFUN([ZFS_AC_KERNEL_SRC_CONST_DENTRY_OPERATIONS], [
  127         ZFS_LINUX_TEST_SRC([dentry_operations_const], [
  128                 #include <linux/dcache.h>
  129 
  130                 const struct dentry_operations test_d_op = {
  131                         .d_revalidate = NULL,
  132                 };
  133         ],[
  134                 struct dentry d __attribute__ ((unused));
  135                 d.d_op = &test_d_op;
  136         ])
  137 ])
  138 
  139 AC_DEFUN([ZFS_AC_KERNEL_CONST_DENTRY_OPERATIONS], [
  140         AC_MSG_CHECKING([whether dentry uses const struct dentry_operations])
  141         ZFS_LINUX_TEST_RESULT([dentry_operations_const], [
  142                 AC_MSG_RESULT(yes)
  143                 AC_DEFINE(HAVE_CONST_DENTRY_OPERATIONS, 1,
  144                     [dentry uses const struct dentry_operations])
  145         ],[
  146                 ZFS_LINUX_TEST_ERROR([const dentry_operations])
  147         ])
  148 ])
  149 
  150 dnl #
  151 dnl # 2.6.38 API change
  152 dnl # Added sb->s_d_op default dentry_operations member
  153 dnl #
  154 AC_DEFUN([ZFS_AC_KERNEL_SRC_S_D_OP], [
  155         ZFS_LINUX_TEST_SRC([super_block_s_d_op], [
  156                 #include <linux/fs.h>
  157         ],[
  158                 struct super_block sb __attribute__ ((unused));
  159                 sb.s_d_op = NULL;
  160         ])
  161 ])
  162 
  163 AC_DEFUN([ZFS_AC_KERNEL_S_D_OP], [
  164         AC_MSG_CHECKING([whether super_block has s_d_op])
  165         ZFS_LINUX_TEST_RESULT([super_block_s_d_op], [
  166                 AC_MSG_RESULT(yes)
  167         ], [
  168                 ZFS_LINUX_TEST_ERROR([super_block s_d_op])
  169         ])
  170 ])
  171 
  172 AC_DEFUN([ZFS_AC_KERNEL_SRC_DENTRY], [
  173         ZFS_AC_KERNEL_SRC_D_MAKE_ROOT
  174         ZFS_AC_KERNEL_SRC_D_OBTAIN_ALIAS
  175         ZFS_AC_KERNEL_SRC_D_PRUNE_ALIASES
  176         ZFS_AC_KERNEL_SRC_D_SET_D_OP
  177         ZFS_AC_KERNEL_SRC_D_REVALIDATE_NAMEIDATA
  178         ZFS_AC_KERNEL_SRC_CONST_DENTRY_OPERATIONS
  179         ZFS_AC_KERNEL_SRC_S_D_OP
  180 ])
  181 
  182 AC_DEFUN([ZFS_AC_KERNEL_DENTRY], [
  183         ZFS_AC_KERNEL_D_MAKE_ROOT
  184         ZFS_AC_KERNEL_D_OBTAIN_ALIAS
  185         ZFS_AC_KERNEL_D_PRUNE_ALIASES
  186         ZFS_AC_KERNEL_D_SET_D_OP
  187         ZFS_AC_KERNEL_D_REVALIDATE_NAMEIDATA
  188         ZFS_AC_KERNEL_CONST_DENTRY_OPERATIONS
  189         ZFS_AC_KERNEL_S_D_OP
  190 ])

Cache object: 17dab249d6b996d53d8afd037a7d6b4a


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.