mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 10:37:35 +03:00
Use set_cached_acl and forget_cached_acl when possible
Originally, these two function are inline, so their usability is tied to posix_acl_release. However, since Linux 3.14, they became EXPORT_SYMBOL, so we can always use them. In this patch, we create an independent test for these two functions so we can use them when possible. Signed-off-by: Chunwei Chen <david.chen@osnexus.com>
This commit is contained in:
committed by
Brian Behlendorf
parent
8e71ab99dc
commit
3779913b35
@@ -205,13 +205,8 @@ lseek_execute(
|
||||
#include <linux/posix_acl.h>
|
||||
|
||||
#if defined(HAVE_POSIX_ACL_RELEASE) && !defined(HAVE_POSIX_ACL_RELEASE_GPL_ONLY)
|
||||
|
||||
#define zpl_posix_acl_release(arg) posix_acl_release(arg)
|
||||
#define zpl_set_cached_acl(ip, ty, n) set_cached_acl(ip, ty, n)
|
||||
#define zpl_forget_cached_acl(ip, ty) forget_cached_acl(ip, ty)
|
||||
|
||||
#else
|
||||
|
||||
void zpl_posix_acl_release_impl(struct posix_acl *);
|
||||
|
||||
static inline void
|
||||
@@ -223,7 +218,12 @@ zpl_posix_acl_release(struct posix_acl *acl)
|
||||
if (atomic_dec_and_test(&acl->a_refcount))
|
||||
zpl_posix_acl_release_impl(acl);
|
||||
}
|
||||
#endif /* HAVE_POSIX_ACL_RELEASE */
|
||||
|
||||
#ifdef HAVE_SET_CACHED_ACL_USABLE
|
||||
#define zpl_set_cached_acl(ip, ty, n) set_cached_acl(ip, ty, n)
|
||||
#define zpl_forget_cached_acl(ip, ty) forget_cached_acl(ip, ty)
|
||||
#else
|
||||
static inline void
|
||||
zpl_set_cached_acl(struct inode *ip, int type, struct posix_acl *newer) {
|
||||
struct posix_acl *older = NULL;
|
||||
@@ -253,7 +253,7 @@ static inline void
|
||||
zpl_forget_cached_acl(struct inode *ip, int type) {
|
||||
zpl_set_cached_acl(ip, type, (struct posix_acl *)ACL_NOT_CACHED);
|
||||
}
|
||||
#endif /* HAVE_POSIX_ACL_RELEASE */
|
||||
#endif /* HAVE_SET_CACHED_ACL_USABLE */
|
||||
|
||||
#ifndef HAVE___POSIX_ACL_CHMOD
|
||||
#ifdef HAVE_POSIX_ACL_CHMOD
|
||||
|
||||
Reference in New Issue
Block a user