1dnl # SPDX-License-Identifier: CDDL-1.0 2dnl # 3dnl # 2.6.38 API change 4dnl # follow_down() renamed follow_down_one(). The original follow_down() 5dnl # symbol still exists but will traverse down all the layers. 6dnl # 7AC_DEFUN([ZFS_AC_KERNEL_SRC_FOLLOW_DOWN_ONE], [ 8 ZFS_LINUX_TEST_SRC([follow_down_one], [ 9 #include <linux/namei.h> 10 ],[ 11 struct path *p = NULL; 12 follow_down_one(p); 13 ]) 14]) 15 16AC_DEFUN([ZFS_AC_KERNEL_FOLLOW_DOWN_ONE], [ 17 AC_MSG_CHECKING([whether follow_down_one() is available]) 18 ZFS_LINUX_TEST_RESULT([follow_down_one], [ 19 AC_MSG_RESULT(yes) 20 ],[ 21 ZFS_LINUX_TEST_ERROR([follow_down_one()]) 22 ]) 23]) 24 25dnl # 26dnl # 6.3: look_down() gains a second flags param. Before this, we need 27dnl # vfs_path_lookup() to build an emulation. 28dnl # 29dnl # 3.12: vfs_path_lookup unpublished from linux/namei.h, remains exported 30dnl # 6.4: vfs_path_lookup republished in linux/namei.h 31dnl # 32AC_DEFUN([ZFS_AC_KERNEL_SRC_FOLLOW_DOWN_FLAGS], [ 33 ZFS_LINUX_TEST_SRC([follow_down_flags], [ 34 #include <linux/namei.h> 35 ],[ 36 struct path *p = NULL; 37 follow_down(p, 0); 38 ]) 39]) 40 41AC_DEFUN([ZFS_AC_KERNEL_FOLLOW_DOWN_FLAGS], [ 42 AC_MSG_CHECKING([whether follow_down() takes a flags parameter]) 43 ZFS_LINUX_TEST_RESULT([follow_down_flags], [ 44 AC_DEFINE(HAVE_FOLLOW_DOWN_FLAGS, 1, 45 [follow_down() takes a flags parameter]) 46 AC_MSG_RESULT(yes) 47 ],[ 48 AC_MSG_RESULT(no) 49 AC_MSG_CHECKING([whether vfs_path_lookup() is exported]) 50 ZFS_CHECK_SYMBOL_EXPORT( 51 [vfs_path_lookup], [fs/namei.c], [ 52 AC_MSG_RESULT(yes) 53 AC_DEFINE(HAVE_VFS_PATH_LOOKUP_EXPORTED, 1, 54 [vfs_path_lookup() is exported]) 55 ],[ 56 AC_MSG_RESULT(no) 57 ZFS_LINUX_TEST_ERROR([follow_down()]) 58 ]) 59 ]) 60]) 61 62AC_DEFUN([ZFS_AC_KERNEL_SRC_FOLLOW_DOWN], [ 63 ZFS_AC_KERNEL_SRC_FOLLOW_DOWN_ONE 64 ZFS_AC_KERNEL_SRC_FOLLOW_DOWN_FLAGS 65]) 66 67AC_DEFUN([ZFS_AC_KERNEL_FOLLOW_DOWN], [ 68 ZFS_AC_KERNEL_FOLLOW_DOWN_ONE 69 ZFS_AC_KERNEL_FOLLOW_DOWN_FLAGS 70]) 71