1dnl # 2dnl # 2.6.38 API change 3dnl # 4AC_DEFUN([ZFS_AC_KERNEL_SRC_BLOCK_DEVICE_OPERATIONS_CHECK_EVENTS], [ 5 ZFS_LINUX_TEST_SRC([block_device_operations_check_events], [ 6 #include <linux/blkdev.h> 7 8 unsigned int blk_check_events(struct gendisk *disk, 9 unsigned int clearing) { return (0); } 10 11 static const struct block_device_operations 12 bops __attribute__ ((unused)) = { 13 .check_events = blk_check_events, 14 }; 15 ], [], [$NO_UNUSED_BUT_SET_VARIABLE]) 16]) 17 18AC_DEFUN([ZFS_AC_KERNEL_BLOCK_DEVICE_OPERATIONS_CHECK_EVENTS], [ 19 AC_MSG_CHECKING([whether bops->check_events() exists]) 20 ZFS_LINUX_TEST_RESULT([block_device_operations_check_events], [ 21 AC_MSG_RESULT(yes) 22 ],[ 23 ZFS_LINUX_TEST_ERROR([bops->check_events()]) 24 ]) 25]) 26 27dnl # 28dnl # 3.10.x API change 29dnl # 30AC_DEFUN([ZFS_AC_KERNEL_SRC_BLOCK_DEVICE_OPERATIONS_RELEASE_VOID], [ 31 ZFS_LINUX_TEST_SRC([block_device_operations_release_void], [ 32 #include <linux/blkdev.h> 33 34 void blk_release(struct gendisk *g, fmode_t mode) { return; } 35 36 static const struct block_device_operations 37 bops __attribute__ ((unused)) = { 38 .open = NULL, 39 .release = blk_release, 40 .ioctl = NULL, 41 .compat_ioctl = NULL, 42 }; 43 ], [], [$NO_UNUSED_BUT_SET_VARIABLE]) 44]) 45 46AC_DEFUN([ZFS_AC_KERNEL_BLOCK_DEVICE_OPERATIONS_RELEASE_VOID], [ 47 AC_MSG_CHECKING([whether bops->release() is void]) 48 ZFS_LINUX_TEST_RESULT([block_device_operations_release_void], [ 49 AC_MSG_RESULT(yes) 50 ],[ 51 ZFS_LINUX_TEST_ERROR([bops->release()]) 52 ]) 53]) 54 55dnl # 56dnl # 5.13 API change 57dnl # block_device_operations->revalidate_disk() was removed 58dnl # 59AC_DEFUN([ZFS_AC_KERNEL_SRC_BLOCK_DEVICE_OPERATIONS_REVALIDATE_DISK], [ 60 ZFS_LINUX_TEST_SRC([block_device_operations_revalidate_disk], [ 61 #include <linux/blkdev.h> 62 63 int blk_revalidate_disk(struct gendisk *disk) { 64 return(0); 65 } 66 67 static const struct block_device_operations 68 bops __attribute__ ((unused)) = { 69 .revalidate_disk = blk_revalidate_disk, 70 }; 71 ], [], [$NO_UNUSED_BUT_SET_VARIABLE]) 72]) 73 74AC_DEFUN([ZFS_AC_KERNEL_BLOCK_DEVICE_OPERATIONS_REVALIDATE_DISK], [ 75 AC_MSG_CHECKING([whether bops->revalidate_disk() exists]) 76 ZFS_LINUX_TEST_RESULT([block_device_operations_revalidate_disk], [ 77 AC_DEFINE([HAVE_BLOCK_DEVICE_OPERATIONS_REVALIDATE_DISK], [1], 78 [Define if revalidate_disk() in block_device_operations]) 79 AC_MSG_RESULT(yes) 80 ],[ 81 AC_MSG_RESULT(no) 82 ]) 83]) 84 85AC_DEFUN([ZFS_AC_KERNEL_SRC_BLOCK_DEVICE_OPERATIONS], [ 86 ZFS_AC_KERNEL_SRC_BLOCK_DEVICE_OPERATIONS_CHECK_EVENTS 87 ZFS_AC_KERNEL_SRC_BLOCK_DEVICE_OPERATIONS_RELEASE_VOID 88 ZFS_AC_KERNEL_SRC_BLOCK_DEVICE_OPERATIONS_REVALIDATE_DISK 89]) 90 91AC_DEFUN([ZFS_AC_KERNEL_BLOCK_DEVICE_OPERATIONS], [ 92 ZFS_AC_KERNEL_BLOCK_DEVICE_OPERATIONS_CHECK_EVENTS 93 ZFS_AC_KERNEL_BLOCK_DEVICE_OPERATIONS_RELEASE_VOID 94 ZFS_AC_KERNEL_BLOCK_DEVICE_OPERATIONS_REVALIDATE_DISK 95]) 96