|
@@ -119,10 +119,6 @@ static int v9fs_set_acl(struct dentry *dentry, int type, struct posix_acl *acl)
|
|
|
char *name;
|
|
|
size_t size;
|
|
|
void *buffer;
|
|
|
- struct inode *inode = dentry->d_inode;
|
|
|
-
|
|
|
- set_cached_acl(inode, type, acl);
|
|
|
-
|
|
|
if (!acl)
|
|
|
return 0;
|
|
|
|
|
@@ -163,6 +159,7 @@ int v9fs_acl_chmod(struct dentry *dentry)
|
|
|
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);
|
|
|
}
|
|
@@ -173,7 +170,9 @@ int v9fs_set_create_acl(struct dentry *dentry,
|
|
|
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);
|