]> Pileus Git - ~andy/linux/blobdiff - include/linux/posix_acl.h
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[~andy/linux] / include / linux / posix_acl.h
index 6b12b3d57e908d0b3627a016491de7f891489d67..3e96a6a7610338ff8ddd825a21ddc9bc5fe52e8b 100644 (file)
@@ -39,9 +39,6 @@ struct posix_acl_entry {
        union {
                kuid_t          e_uid;
                kgid_t          e_gid;
-#ifndef CONFIG_UIDGID_STRICT_TYPE_CHECKS
-               unsigned int    e_id;
-#endif
        };
 };
 
@@ -102,76 +99,12 @@ extern int posix_acl_create(struct inode *, umode_t *, struct posix_acl **,
 extern int simple_set_acl(struct inode *, struct posix_acl *, int);
 extern int simple_acl_create(struct inode *, struct inode *);
 
-static inline struct posix_acl **acl_by_type(struct inode *inode, int type)
-{
-       switch (type) {
-       case ACL_TYPE_ACCESS:
-               return &inode->i_acl;
-       case ACL_TYPE_DEFAULT:
-               return &inode->i_default_acl;
-       default:
-               BUG();
-       }
-}
-
-static inline struct posix_acl *get_cached_acl(struct inode *inode, int type)
-{
-       struct posix_acl **p = acl_by_type(inode, type);
-       struct posix_acl *acl = ACCESS_ONCE(*p);
-       if (acl) {
-               spin_lock(&inode->i_lock);
-               acl = *p;
-               if (acl != ACL_NOT_CACHED)
-                       acl = posix_acl_dup(acl);
-               spin_unlock(&inode->i_lock);
-       }
-       return acl;
-}
-
-static inline struct posix_acl *get_cached_acl_rcu(struct inode *inode, int type)
-{
-       return rcu_dereference(*acl_by_type(inode, type));
-}
-
-static inline void set_cached_acl(struct inode *inode,
-                                 int type,
-                                 struct posix_acl *acl)
-{
-       struct posix_acl **p = acl_by_type(inode, type);
-       struct posix_acl *old;
-       spin_lock(&inode->i_lock);
-       old = *p;
-       rcu_assign_pointer(*p, posix_acl_dup(acl));
-       spin_unlock(&inode->i_lock);
-       if (old != ACL_NOT_CACHED)
-               posix_acl_release(old);
-}
-
-static inline void forget_cached_acl(struct inode *inode, int type)
-{
-       struct posix_acl **p = acl_by_type(inode, type);
-       struct posix_acl *old;
-       spin_lock(&inode->i_lock);
-       old = *p;
-       *p = ACL_NOT_CACHED;
-       spin_unlock(&inode->i_lock);
-       if (old != ACL_NOT_CACHED)
-               posix_acl_release(old);
-}
-
-static inline void forget_all_cached_acls(struct inode *inode)
-{
-       struct posix_acl *old_access, *old_default;
-       spin_lock(&inode->i_lock);
-       old_access = inode->i_acl;
-       old_default = inode->i_default_acl;
-       inode->i_acl = inode->i_default_acl = ACL_NOT_CACHED;
-       spin_unlock(&inode->i_lock);
-       if (old_access != ACL_NOT_CACHED)
-               posix_acl_release(old_access);
-       if (old_default != ACL_NOT_CACHED)
-               posix_acl_release(old_default);
-}
+struct posix_acl **acl_by_type(struct inode *inode, int type);
+struct posix_acl *get_cached_acl(struct inode *inode, int type);
+struct posix_acl *get_cached_acl_rcu(struct inode *inode, int type);
+void set_cached_acl(struct inode *inode, int type, struct posix_acl *acl);
+void forget_cached_acl(struct inode *inode, int type);
+void forget_all_cached_acls(struct inode *inode);
 
 static inline void cache_no_acl(struct inode *inode)
 {