switch jfs to inode->i_acl
Al Viro [Mon, 8 Jun 2009 23:54:52 +0000 (19:54 -0400)]
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

fs/jfs/acl.c
fs/jfs/jfs_incore.h
fs/jfs/super.c
fs/jfs/xattr.c

index 06ca1b8..5fcfc98 100644 (file)
@@ -31,7 +31,6 @@ static struct posix_acl *jfs_get_acl(struct inode *inode, int type)
 {
        struct posix_acl *acl;
        char *ea_name;
-       struct jfs_inode_info *ji = JFS_IP(inode);
        struct posix_acl **p_acl;
        int size;
        char *value = NULL;
@@ -39,17 +38,17 @@ static struct posix_acl *jfs_get_acl(struct inode *inode, int type)
        switch(type) {
                case ACL_TYPE_ACCESS:
                        ea_name = POSIX_ACL_XATTR_ACCESS;
-                       p_acl = &ji->i_acl;
+                       p_acl = &inode->i_acl;
                        break;
                case ACL_TYPE_DEFAULT:
                        ea_name = POSIX_ACL_XATTR_DEFAULT;
-                       p_acl = &ji->i_default_acl;
+                       p_acl = &inode->i_default_acl;
                        break;
                default:
                        return ERR_PTR(-EINVAL);
        }
 
-       if (*p_acl != JFS_ACL_NOT_CACHED)
+       if (*p_acl != ACL_NOT_CACHED)
                return posix_acl_dup(*p_acl);
 
        size = __jfs_getxattr(inode, ea_name, NULL, 0);
@@ -80,7 +79,6 @@ static int jfs_set_acl(tid_t tid, struct inode *inode, int type,
                       struct posix_acl *acl)
 {
        char *ea_name;
-       struct jfs_inode_info *ji = JFS_IP(inode);
        struct posix_acl **p_acl;
        int rc;
        int size = 0;
@@ -92,11 +90,11 @@ static int jfs_set_acl(tid_t tid, struct inode *inode, int type,
        switch(type) {
                case ACL_TYPE_ACCESS:
                        ea_name = POSIX_ACL_XATTR_ACCESS;
-                       p_acl = &ji->i_acl;
+                       p_acl = &inode->i_acl;
                        break;
                case ACL_TYPE_DEFAULT:
                        ea_name = POSIX_ACL_XATTR_DEFAULT;
-                       p_acl = &ji->i_default_acl;
+                       p_acl = &inode->i_default_acl;
                        if (!S_ISDIR(inode->i_mode))
                                return acl ? -EACCES : 0;
                        break;
@@ -117,7 +115,7 @@ out:
        kfree(value);
 
        if (!rc) {
-               if (*p_acl && (*p_acl != JFS_ACL_NOT_CACHED))
+               if (*p_acl && (*p_acl != ACL_NOT_CACHED))
                        posix_acl_release(*p_acl);
                *p_acl = posix_acl_dup(acl);
        }
@@ -126,17 +124,15 @@ out:
 
 static int jfs_check_acl(struct inode *inode, int mask)
 {
-       struct jfs_inode_info *ji = JFS_IP(inode);
-
-       if (ji->i_acl == JFS_ACL_NOT_CACHED) {
+       if (inode->i_acl == ACL_NOT_CACHED) {
                struct posix_acl *acl = jfs_get_acl(inode, ACL_TYPE_ACCESS);
                if (IS_ERR(acl))
                        return PTR_ERR(acl);
                posix_acl_release(acl);
        }
 
-       if (ji->i_acl)
-               return posix_acl_permission(inode, ji->i_acl, mask);
+       if (inode->i_acl)
+               return posix_acl_permission(inode, inode->i_acl, mask);
        return -EAGAIN;
 }
 
index 439901d..1439f11 100644 (file)
@@ -74,10 +74,6 @@ struct jfs_inode_info {
        /* xattr_sem allows us to access the xattrs without taking i_mutex */
        struct rw_semaphore xattr_sem;
        lid_t   xtlid;          /* lid of xtree lock on directory */
-#ifdef CONFIG_JFS_POSIX_ACL
-       struct posix_acl *i_acl;
-       struct posix_acl *i_default_acl;
-#endif
        union {
                struct {
                        xtpage_t _xtroot;       /* 288: xtree root */
@@ -107,8 +103,6 @@ struct jfs_inode_info {
 #define i_inline u.link._inline
 #define i_inline_ea u.link._inline_ea
 
-#define JFS_ACL_NOT_CACHED ((void *)-1)
-
 #define IREAD_LOCK(ip, subclass) \
        down_read_nested(&JFS_IP(ip)->rdwrlock, subclass)
 #define IREAD_UNLOCK(ip)       up_read(&JFS_IP(ip)->rdwrlock)
index 09b1b6e..37e6dcd 100644 (file)
@@ -128,18 +128,6 @@ static void jfs_destroy_inode(struct inode *inode)
                ji->active_ag = -1;
        }
        spin_unlock_irq(&ji->ag_lock);
-
-#ifdef CONFIG_JFS_POSIX_ACL
-       if (ji->i_acl != JFS_ACL_NOT_CACHED) {
-               posix_acl_release(ji->i_acl);
-               ji->i_acl = JFS_ACL_NOT_CACHED;
-       }
-       if (ji->i_default_acl != JFS_ACL_NOT_CACHED) {
-               posix_acl_release(ji->i_default_acl);
-               ji->i_default_acl = JFS_ACL_NOT_CACHED;
-       }
-#endif
-
        kmem_cache_free(jfs_inode_cachep, ji);
 }
 
@@ -798,10 +786,6 @@ static void init_once(void *foo)
        init_rwsem(&jfs_ip->xattr_sem);
        spin_lock_init(&jfs_ip->ag_lock);
        jfs_ip->active_ag = -1;
-#ifdef CONFIG_JFS_POSIX_ACL
-       jfs_ip->i_acl = JFS_ACL_NOT_CACHED;
-       jfs_ip->i_default_acl = JFS_ACL_NOT_CACHED;
-#endif
        inode_init_once(&jfs_ip->vfs_inode);
 }
 
index 61dfa81..f6e90e3 100644 (file)
@@ -727,10 +727,10 @@ static int can_set_system_xattr(struct inode *inode, const char *name,
                /*
                 * We're changing the ACL.  Get rid of the cached one
                 */
-               acl =JFS_IP(inode)->i_acl;
-               if (acl != JFS_ACL_NOT_CACHED)
+               acl =inode->i_acl;
+               if (acl != ACL_NOT_CACHED)
                        posix_acl_release(acl);
-               JFS_IP(inode)->i_acl = JFS_ACL_NOT_CACHED;
+               inode->i_acl = ACL_NOT_CACHED;
 
                return 0;
        } else if (strcmp(name, POSIX_ACL_XATTR_DEFAULT) == 0) {
@@ -746,10 +746,10 @@ static int can_set_system_xattr(struct inode *inode, const char *name,
                /*
                 * We're changing the default ACL.  Get rid of the cached one
                 */
-               acl =JFS_IP(inode)->i_default_acl;
-               if (acl && (acl != JFS_ACL_NOT_CACHED))
+               acl = inode->i_default_acl;
+               if (acl && (acl != ACL_NOT_CACHED))
                        posix_acl_release(acl);
-               JFS_IP(inode)->i_default_acl = JFS_ACL_NOT_CACHED;
+               inode->i_default_acl = ACL_NOT_CACHED;
 
                return 0;
        }