char *name;
        size_t size;
        void *buffer;
-       struct inode *inode = dentry->d_inode;
-
-       set_cached_acl(inode, type, acl);
-
        if (!acl)
                return 0;
 
                retval = posix_acl_chmod(&acl, GFP_KERNEL, inode->i_mode);
                if (retval)
                        return retval;
+               set_cached_acl(inode, ACL_TYPE_ACCESS, acl);
                retval = v9fs_set_acl(dentry, ACL_TYPE_ACCESS, acl);
                posix_acl_release(acl);
        }
                        struct posix_acl **dpacl, struct posix_acl **pacl)
 {
        if (dentry) {
+               set_cached_acl(dentry->d_inode, ACL_TYPE_DEFAULT, *dpacl);
                v9fs_set_acl(dentry, ACL_TYPE_DEFAULT, *dpacl);
+               set_cached_acl(dentry->d_inode, ACL_TYPE_ACCESS, *pacl);
                v9fs_set_acl(dentry, ACL_TYPE_ACCESS, *pacl);
        }
        posix_acl_release(*dpacl);