mirror of
https://git.proxmox.com/git/mirror_zfs
synced 2025-04-28 11:40:17 +00:00

This is a convenience for filesystems that need the inode of their parent or their own name, as its often complicated to get that information. We don't need those things, so this is just detecting which prototype is expected and adjusting our callback to match. Sponsored-by: https://despairlabs.com/sponsor/ Signed-off-by: Rob Norris <robn@despairlabs.com> Reviewed-by: Alexander Motin <mav@FreeBSD.org> Reviewed-by: Tony Hutter <hutter2@llnl.gov>
63 lines
1.8 KiB
Plaintext
63 lines
1.8 KiB
Plaintext
dnl #
|
|
dnl # 2.6.37 API change
|
|
dnl # The dops->d_automount() dentry operation was added as a clean
|
|
dnl # solution to handling automounts. Prior to this cifs/nfs clients
|
|
dnl # which required automount support would abuse the follow_link()
|
|
dnl # operation on directories for this purpose.
|
|
dnl #
|
|
AC_DEFUN([ZFS_AC_KERNEL_SRC_D_AUTOMOUNT], [
|
|
ZFS_LINUX_TEST_SRC([dentry_operations_d_automount], [
|
|
#include <linux/dcache.h>
|
|
static struct vfsmount *d_automount(struct path *p) { return NULL; }
|
|
struct dentry_operations dops __attribute__ ((unused)) = {
|
|
.d_automount = d_automount,
|
|
};
|
|
])
|
|
])
|
|
|
|
AC_DEFUN([ZFS_AC_KERNEL_D_AUTOMOUNT], [
|
|
AC_MSG_CHECKING([whether dops->d_automount() exists])
|
|
ZFS_LINUX_TEST_RESULT([dentry_operations_d_automount], [
|
|
AC_MSG_RESULT(yes)
|
|
],[
|
|
ZFS_LINUX_TEST_ERROR([dops->d_automount()])
|
|
])
|
|
])
|
|
|
|
dnl #
|
|
dnl # 6.14 API change
|
|
dnl # dops->d_revalidate now has four args.
|
|
dnl #
|
|
AC_DEFUN([ZFS_AC_KERNEL_SRC_D_REVALIDATE_4ARGS], [
|
|
ZFS_LINUX_TEST_SRC([dentry_operations_d_revalidate_4args], [
|
|
#include <linux/dcache.h>
|
|
static int d_revalidate(struct inode *dir,
|
|
const struct qstr *name, struct dentry *dentry,
|
|
unsigned int fl) { return 0; }
|
|
struct dentry_operations dops __attribute__ ((unused)) = {
|
|
.d_revalidate = d_revalidate,
|
|
};
|
|
])
|
|
])
|
|
|
|
AC_DEFUN([ZFS_AC_KERNEL_D_REVALIDATE_4ARGS], [
|
|
AC_MSG_CHECKING([whether dops->d_revalidate() takes 4 args])
|
|
ZFS_LINUX_TEST_RESULT([dentry_operations_d_revalidate_4args], [
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(HAVE_D_REVALIDATE_4ARGS, 1,
|
|
[dops->d_revalidate() takes 4 args])
|
|
],[
|
|
AC_MSG_RESULT(no)
|
|
])
|
|
])
|
|
|
|
AC_DEFUN([ZFS_AC_KERNEL_SRC_AUTOMOUNT], [
|
|
ZFS_AC_KERNEL_SRC_D_AUTOMOUNT
|
|
ZFS_AC_KERNEL_SRC_D_REVALIDATE_4ARGS
|
|
])
|
|
|
|
AC_DEFUN([ZFS_AC_KERNEL_AUTOMOUNT], [
|
|
ZFS_AC_KERNEL_D_AUTOMOUNT
|
|
ZFS_AC_KERNEL_D_REVALIDATE_4ARGS
|
|
])
|