2 dnl # 2.6.38 API change
4 AC_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>
8 unsigned int blk_check_events(struct gendisk *disk,
9 unsigned int clearing) { return (0); }
11 static const struct block_device_operations
12 bops __attribute__ ((unused)) = {
13 .check_events = blk_check_events,
15 ], [], [$NO_UNUSED_BUT_SET_VARIABLE])
18 AC_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], [
23 ZFS_LINUX_TEST_ERROR([bops->check_events()])
28 dnl # 3.10.x API change
30 AC_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>
34 void blk_release(struct gendisk *g, fmode_t mode) { return; }
36 static const struct block_device_operations
37 bops __attribute__ ((unused)) = {
39 .release = blk_release,
43 ], [], [$NO_UNUSED_BUT_SET_VARIABLE])
46 AC_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], [
51 ZFS_LINUX_TEST_ERROR([bops->release()])
55 AC_DEFUN([ZFS_AC_KERNEL_SRC_BLOCK_DEVICE_OPERATIONS], [
56 ZFS_AC_KERNEL_SRC_BLOCK_DEVICE_OPERATIONS_CHECK_EVENTS
57 ZFS_AC_KERNEL_SRC_BLOCK_DEVICE_OPERATIONS_RELEASE_VOID
60 AC_DEFUN([ZFS_AC_KERNEL_BLOCK_DEVICE_OPERATIONS], [
61 ZFS_AC_KERNEL_BLOCK_DEVICE_OPERATIONS_CHECK_EVENTS
62 ZFS_AC_KERNEL_BLOCK_DEVICE_OPERATIONS_RELEASE_VOID