mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-26 03:09:34 +03:00
Linux 3.14 compat: posix_acl_{create,chmod}
posix_acl_{create,chmod} is changed to __posix_acl_{create_chmod} Signed-off-by: Chunwei Chen <tuxoko@gmail.com> Signed-off-by: Richard Yao <ryao@gentoo.org> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Issue #2124
This commit is contained in:
parent
443c3f7332
commit
408ec0d2e1
@ -44,6 +44,9 @@ dnl # 3.1 API change,
|
|||||||
dnl # posix_acl_chmod_masq() is not exported anymore and posix_acl_chmod()
|
dnl # posix_acl_chmod_masq() is not exported anymore and posix_acl_chmod()
|
||||||
dnl # was introduced to replace it.
|
dnl # was introduced to replace it.
|
||||||
dnl #
|
dnl #
|
||||||
|
dnl # 3.14 API change,
|
||||||
|
dnl # posix_acl_chmod() is changed to __posix_acl_chmod()
|
||||||
|
dnl #
|
||||||
AC_DEFUN([ZFS_AC_KERNEL_POSIX_ACL_CHMOD], [
|
AC_DEFUN([ZFS_AC_KERNEL_POSIX_ACL_CHMOD], [
|
||||||
AC_MSG_CHECKING([whether posix_acl_chmod exists])
|
AC_MSG_CHECKING([whether posix_acl_chmod exists])
|
||||||
ZFS_LINUX_TRY_COMPILE([
|
ZFS_LINUX_TRY_COMPILE([
|
||||||
@ -57,6 +60,19 @@ AC_DEFUN([ZFS_AC_KERNEL_POSIX_ACL_CHMOD], [
|
|||||||
],[
|
],[
|
||||||
AC_MSG_RESULT(no)
|
AC_MSG_RESULT(no)
|
||||||
])
|
])
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([whether __posix_acl_chmod exists])
|
||||||
|
ZFS_LINUX_TRY_COMPILE([
|
||||||
|
#include <linux/fs.h>
|
||||||
|
#include <linux/posix_acl.h>
|
||||||
|
],[
|
||||||
|
__posix_acl_chmod(NULL, 0, 0)
|
||||||
|
],[
|
||||||
|
AC_MSG_RESULT(yes)
|
||||||
|
AC_DEFINE(HAVE___POSIX_ACL_CHMOD, 1, [__posix_acl_chmod() exists])
|
||||||
|
],[
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
])
|
||||||
])
|
])
|
||||||
|
|
||||||
dnl #
|
dnl #
|
||||||
|
@ -263,9 +263,13 @@ zpl_forget_cached_acl(struct inode *ip, int type) {
|
|||||||
#define zpl_inode_owner_or_capable(ip) is_owner_or_cap(ip)
|
#define zpl_inode_owner_or_capable(ip) is_owner_or_cap(ip)
|
||||||
#endif /* HAVE_INODE_OWNER_OR_CAPABLE */
|
#endif /* HAVE_INODE_OWNER_OR_CAPABLE */
|
||||||
|
|
||||||
#ifndef HAVE_POSIX_ACL_CHMOD
|
#ifndef HAVE___POSIX_ACL_CHMOD
|
||||||
|
#ifdef HAVE_POSIX_ACL_CHMOD
|
||||||
|
#define __posix_acl_chmod(acl, gfp, mode) posix_acl_chmod(acl, gfp, mode)
|
||||||
|
#define __posix_acl_create(acl, gfp, mode) posix_acl_create(acl, gfp, mode)
|
||||||
|
#else
|
||||||
static inline int
|
static inline int
|
||||||
posix_acl_chmod(struct posix_acl **acl, int flags, umode_t umode) {
|
__posix_acl_chmod(struct posix_acl **acl, int flags, umode_t umode) {
|
||||||
struct posix_acl *oldacl = *acl;
|
struct posix_acl *oldacl = *acl;
|
||||||
mode_t mode = umode;
|
mode_t mode = umode;
|
||||||
int error;
|
int error;
|
||||||
@ -286,7 +290,7 @@ posix_acl_chmod(struct posix_acl **acl, int flags, umode_t umode) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static inline int
|
static inline int
|
||||||
posix_acl_create(struct posix_acl **acl, int flags, umode_t *umodep) {
|
__posix_acl_create(struct posix_acl **acl, int flags, umode_t *umodep) {
|
||||||
struct posix_acl *oldacl = *acl;
|
struct posix_acl *oldacl = *acl;
|
||||||
mode_t mode = *umodep;
|
mode_t mode = *umodep;
|
||||||
int error;
|
int error;
|
||||||
@ -308,6 +312,7 @@ posix_acl_create(struct posix_acl **acl, int flags, umode_t *umodep) {
|
|||||||
return (error);
|
return (error);
|
||||||
}
|
}
|
||||||
#endif /* HAVE_POSIX_ACL_CHMOD */
|
#endif /* HAVE_POSIX_ACL_CHMOD */
|
||||||
|
#endif /* HAVE___POSIX_ACL_CHMOD */
|
||||||
|
|
||||||
#ifndef HAVE_CURRENT_UMASK
|
#ifndef HAVE_CURRENT_UMASK
|
||||||
static inline int
|
static inline int
|
||||||
|
@ -924,7 +924,7 @@ zpl_init_acl(struct inode *ip, struct inode *dir)
|
|||||||
}
|
}
|
||||||
|
|
||||||
mode = ip->i_mode;
|
mode = ip->i_mode;
|
||||||
error = posix_acl_create(&acl, GFP_KERNEL, &mode);
|
error = __posix_acl_create(&acl, GFP_KERNEL, &mode);
|
||||||
if (error >= 0) {
|
if (error >= 0) {
|
||||||
ip->i_mode = mode;
|
ip->i_mode = mode;
|
||||||
mark_inode_dirty(ip);
|
mark_inode_dirty(ip);
|
||||||
@ -954,7 +954,7 @@ zpl_chmod_acl(struct inode *ip)
|
|||||||
if (IS_ERR(acl) || !acl)
|
if (IS_ERR(acl) || !acl)
|
||||||
return (PTR_ERR(acl));
|
return (PTR_ERR(acl));
|
||||||
|
|
||||||
error = posix_acl_chmod(&acl, GFP_KERNEL, ip->i_mode);
|
error = __posix_acl_chmod(&acl, GFP_KERNEL, ip->i_mode);
|
||||||
if (!error)
|
if (!error)
|
||||||
error = zpl_set_acl(ip, ACL_TYPE_ACCESS, acl);
|
error = zpl_set_acl(ip, ACL_TYPE_ACCESS, acl);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user