File: kernel-automount.m4

package info (click to toggle)
zfs-linux 2.3.4~git20250812.3b64a96-1
  • links: PTS, VCS
  • area: contrib
  • in suites: experimental
  • size: 70,688 kB
  • sloc: ansic: 393,668; sh: 68,068; asm: 47,734; python: 8,160; makefile: 5,125; perl: 859; sed: 41
file content (62 lines) | stat: -rw-r--r-- 1,819 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
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
])