| dnl # |
| dnl # 3.3 API change |
| dnl # The VFS .create, .mkdir and .mknod callbacks were updated to take a |
| dnl # umode_t type rather than an int. The expectation is that any backport |
| dnl # would also change all three prototypes. However, if it turns out that |
| dnl # some distribution doesn't backport the whole thing this could be |
| dnl # broken apart into three separate checks. |
| dnl # |
| AC_DEFUN([ZFS_AC_KERNEL_SRC_MKDIR_UMODE_T], [ |
| ZFS_LINUX_TEST_SRC([inode_operations_mkdir], [ |
| #include <linux/fs.h> |
| |
| int mkdir(struct inode *inode, struct dentry *dentry, |
| umode_t umode) { return 0; } |
| |
| static const struct inode_operations |
| iops __attribute__ ((unused)) = { |
| .mkdir = mkdir, |
| }; |
| ],[]) |
| ]) |
| |
| AC_DEFUN([ZFS_AC_KERNEL_MKDIR_UMODE_T], [ |
| AC_MSG_CHECKING([whether iops->create()/mkdir()/mknod() take umode_t]) |
| ZFS_LINUX_TEST_RESULT([inode_operations_mkdir], [ |
| AC_MSG_RESULT(yes) |
| AC_DEFINE(HAVE_MKDIR_UMODE_T, 1, |
| [iops->create()/mkdir()/mknod() take umode_t]) |
| ],[ |
| AC_MSG_RESULT(no) |
| ]) |
| ]) |