summaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
authorRichard Yao <[email protected]>2014-04-29 22:42:09 -0400
committerBrian Behlendorf <[email protected]>2014-05-01 10:06:49 -0700
commit3b4f425a5a321c02f6cf10e2ffba891ff79b80c6 (patch)
tree3242d7a856fdfd2c77ee6dbbb0c4731fce84f475 /config
parent78597769b488633c9b61ded8ede0c8790b849b75 (diff)
Refactor inode_owner_or_capable() autotools check
We need inode_owner_or_capable() for ZFS file attributes in addition to xattrs, so it should go into its own file. This moves it into its own file and changes it to be more comprehensive. It will now fail if no known good API is detected. Signed-off-by: Richard Yao <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]> Issue #1691
Diffstat (limited to 'config')
-rw-r--r--config/kernel-is_owner_or_cap.m436
-rw-r--r--config/kernel-xattr-handler.m419
2 files changed, 36 insertions, 19 deletions
diff --git a/config/kernel-is_owner_or_cap.m4 b/config/kernel-is_owner_or_cap.m4
new file mode 100644
index 000000000..da07e58dd
--- /dev/null
+++ b/config/kernel-is_owner_or_cap.m4
@@ -0,0 +1,36 @@
+dnl #
+dnl # 2.6.39 API change,
+dnl # The is_owner_or_cap() macro was renamed to inode_owner_or_capable(),
+dnl # This is used for permission checks in the xattr and file attribute call
+dnl # paths.
+dnl #
+AC_DEFUN([ZFS_AC_KERNEL_INODE_OWNER_OR_CAPABLE], [
+ AC_MSG_CHECKING([whether inode_owner_or_capable() exists])
+ ZFS_LINUX_TRY_COMPILE([
+ #include <linux/fs.h>
+ ],[
+ struct inode *ip = NULL;
+ (void) inode_owner_or_capable(ip);
+ ],[
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_INODE_OWNER_OR_CAPABLE, 1,
+ [inode_owner_or_capable() exists])
+ ],[
+ AC_MSG_RESULT(no)
+ AC_MSG_CHECKING([whether is_owner_or_cap() exists])
+ ZFS_LINUX_TRY_COMPILE([
+ #include <linux/fs.h>
+ #include <linux/sched.h>
+ ],[
+ struct inode *ip = NULL;
+ (void) is_owner_or_cap(ip);
+ ],[
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_IS_OWNER_OR_CAP, 1,
+ [is_owner_or_cap() exists])
+ ],[
+ AC_MSG_ERROR(no - Please file a bug report at
+ https://github.com/zfsonlinux/zfs/issues/new)
+ ])
+ ])
+])
diff --git a/config/kernel-xattr-handler.m4 b/config/kernel-xattr-handler.m4
index 2ba2fcbcd..1374f7917 100644
--- a/config/kernel-xattr-handler.m4
+++ b/config/kernel-xattr-handler.m4
@@ -134,22 +134,3 @@ AC_DEFUN([ZFS_AC_KERNEL_POSIX_ACL_FROM_XATTR_USERNS], [
])
])
-dnl #
-dnl # 2.6.39 API change,
-dnl # The is_owner_or_cap() macro was replaced by inode_owner_or_capable(),
-dnl # this is used for permission checks in the xattr call paths.
-dnl #
-AC_DEFUN([ZFS_AC_KERNEL_INODE_OWNER_OR_CAPABLE], [
- AC_MSG_CHECKING([whether inode_owner_or_capable() exists])
- ZFS_LINUX_TRY_COMPILE([
- #include <linux/fs.h>
- ],[
- inode_owner_or_capable(NULL);
- ],[
- AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_INODE_OWNER_OR_CAPABLE, 1,
- [inode_owner_or_capable() exists])
- ],[
- AC_MSG_RESULT(no)
- ])
-])