This file is indexed.

/usr/src/zfs-0.6.5.6/config/kernel-get-link.m4 is in zfs-dkms 0.6.5.6-0ubuntu8.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
dnl #
dnl # Supported get_link() interfaces checked newest to oldest.
dnl #
AC_DEFUN([ZFS_AC_KERNEL_FOLLOW_LINK], [
	dnl #
	dnl # 4.2 API change
	dnl # - This kernel retired the nameidata structure.
	dnl #
	AC_MSG_CHECKING([whether iops->follow_link() passes cookie])
	ZFS_LINUX_TRY_COMPILE([
		#include <linux/fs.h>
		const char *follow_link(struct dentry *de,
		    void **cookie) { return "symlink"; }
		static struct inode_operations
		    iops __attribute__ ((unused)) = {
			.follow_link = follow_link,
		};
	],[
	],[
		AC_MSG_RESULT(yes)
		AC_DEFINE(HAVE_FOLLOW_LINK_COOKIE, 1,
		    [iops->follow_link() cookie])
	],[
		dnl #
		dnl # 2.6.32 API
		dnl #
		AC_MSG_RESULT(no)
		AC_MSG_CHECKING(
		   [whether iops->follow_link() passes nameidata])
		ZFS_LINUX_TRY_COMPILE([
		#include <linux/fs.h>
			void *follow_link(struct dentry *de, struct
			    nameidata *nd) { return (void *)NULL; }
			static struct inode_operations
			    iops __attribute__ ((unused)) = {
				.follow_link = follow_link,
			};
		],[
		],[
			AC_MSG_RESULT(yes)
			AC_DEFINE(HAVE_FOLLOW_LINK_NAMEIDATA, 1,
			          [iops->follow_link() nameidata])
		],[
                        AC_MSG_ERROR(no; please file a bug report)
		])
	])
])

AC_DEFUN([ZFS_AC_KERNEL_GET_LINK], [
	dnl #
	dnl # 4.5 API change
	dnl # The get_link interface has added a delayed done call and
	dnl # used it to retire the put_link() interface.
	dnl #
	AC_MSG_CHECKING([whether iops->get_link() passes delayed])
	ZFS_LINUX_TRY_COMPILE([
		#include <linux/fs.h>
		const char *get_link(struct dentry *de, struct inode *ip,
		    struct delayed_call *done) { return "symlink"; }
		static struct inode_operations
		     iops __attribute__ ((unused)) = {
			.get_link = get_link,
		};
	],[
	],[
		AC_MSG_RESULT(yes)
		AC_DEFINE(HAVE_GET_LINK_DELAYED, 1,
		    [iops->get_link() delayed])
	],[
		dnl #
		dnl # 4.5 API change
		dnl # The follow_link() interface has been replaced by
		dnl # get_link() which behaves the same as before except:
		dnl # - An inode is passed as a separate argument
		dnl # - When called in RCU mode a NULL dentry is passed.
		dnl #
		AC_MSG_RESULT(no)
		AC_MSG_CHECKING([whether iops->get_link() passes cookie])
		ZFS_LINUX_TRY_COMPILE([
			#include <linux/fs.h>
			const char *get_link(struct dentry *de, struct
			    inode *ip, void **cookie) { return "symlink"; }
			static struct inode_operations
			     iops __attribute__ ((unused)) = {
				.get_link = get_link,
			};
		],[
		],[
			AC_MSG_RESULT(yes)
			AC_DEFINE(HAVE_GET_LINK_COOKIE, 1,
			    [iops->get_link() cookie])
		],[
			dnl #
			dnl # Check for the follow_link APIs.
			dnl #
			AC_MSG_RESULT(no)
			ZFS_AC_KERNEL_FOLLOW_LINK
		])
	])
])