X-Git-Url: https://git.camperquake.de/gitweb.cgi?a=blobdiff_plain;f=config%2Fkernel-xattr-handler.m4;h=325c960df6e476010cef315ad28651e36b5e0cd4;hb=1a33036df9de8f95aea38ec0d9e483106d1abaa4;hp=fa7294597e5f3dbe526dde2c25fc90b3245dd111;hpb=777d4af89137907adc91377327505f40c296035d;p=zfs.git diff --git a/config/kernel-xattr-handler.m4 b/config/kernel-xattr-handler.m4 index fa72945..325c960 100644 --- a/config/kernel-xattr-handler.m4 +++ b/config/kernel-xattr-handler.m4 @@ -19,7 +19,7 @@ AC_DEFUN([ZFS_AC_KERNEL_CONST_XATTR_HANDLER], &xattr_test_handler, }; ],[ - struct super_block sb; + struct super_block sb __attribute__ ((unused)); sb.s_xattr = xattr_handlers; ],[ @@ -30,3 +30,52 @@ AC_DEFUN([ZFS_AC_KERNEL_CONST_XATTR_HANDLER], AC_MSG_RESULT([no]) ]) ]) + +dnl # +dnl # 2.6.33 API change, +dnl # The xattr_hander->get() callback was changed to take a dentry +dnl # instead of an inode, and a handler_flags argument was added. +dnl # +AC_DEFUN([ZFS_AC_KERNEL_XATTR_HANDLER_GET], [ + AC_MSG_CHECKING([whether xattr_handler->get() wants dentry]) + ZFS_LINUX_TRY_COMPILE([ + #include + ],[ + int (*get)(struct dentry *dentry, const char *name, + void *buffer, size_t size, int handler_flags) = NULL; + struct xattr_handler xops __attribute__ ((unused)); + + xops.get = get; + ],[ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_DENTRY_XATTR_GET, 1, + [xattr_handler->get() wants dentry]) + ],[ + AC_MSG_RESULT(no) + ]) +]) + +dnl # +dnl # 2.6.33 API change, +dnl # The xattr_hander->set() callback was changed to take a dentry +dnl # instead of an inode, and a handler_flags argument was added. +dnl # +AC_DEFUN([ZFS_AC_KERNEL_XATTR_HANDLER_SET], [ + AC_MSG_CHECKING([whether xattr_handler->set() wants dentry]) + ZFS_LINUX_TRY_COMPILE([ + #include + ],[ + int (*set)(struct dentry *dentry, const char *name, + const void *buffer, size_t size, int flags, + int handler_flags) = NULL; + struct xattr_handler xops __attribute__ ((unused)); + + xops.set = set; + ],[ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_DENTRY_XATTR_SET, 1, + [xattr_handler->set() wants dentry]) + ],[ + AC_MSG_RESULT(no) + ]) +])