diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2013-01-31 19:31:23 +0100 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2013-02-26 08:46:06 +0100 |
commit | 5fa6300ae0ccf76018775ea16bc3a061cadc39a6 (patch) | |
tree | c3f8ade583a33039a057a6257edc5c8b57d5411d /fs/9p/acl.c | |
parent | 9p: switch v9fs_acl_chmod() from dentry to inode+fid (diff) | |
download | linux-5fa6300ae0ccf76018775ea16bc3a061cadc39a6.tar.xz linux-5fa6300ae0ccf76018775ea16bc3a061cadc39a6.zip |
9p: split dropping the acls from v9fs_set_create_acl()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/9p/acl.c')
-rw-r--r-- | fs/9p/acl.c | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/fs/9p/acl.c b/fs/9p/acl.c index 81ae143ff3f7..5b91689ac0b1 100644 --- a/fs/9p/acl.c +++ b/fs/9p/acl.c @@ -167,23 +167,25 @@ int v9fs_acl_chmod(struct inode *inode, struct p9_fid *fid) } int v9fs_set_create_acl(struct dentry *dentry, - struct posix_acl **dpacl, struct posix_acl **pacl) + struct posix_acl *dacl, struct posix_acl *acl) { - if (dentry) { - struct p9_fid *fid = v9fs_fid_lookup(dentry); - set_cached_acl(dentry->d_inode, ACL_TYPE_DEFAULT, *dpacl); - set_cached_acl(dentry->d_inode, ACL_TYPE_ACCESS, *pacl); - if (!IS_ERR(fid)) { - v9fs_set_acl(fid, ACL_TYPE_DEFAULT, *dpacl); - v9fs_set_acl(fid, ACL_TYPE_ACCESS, *pacl); - } + struct p9_fid *fid = v9fs_fid_lookup(dentry); + set_cached_acl(dentry->d_inode, ACL_TYPE_DEFAULT, dacl); + set_cached_acl(dentry->d_inode, ACL_TYPE_ACCESS, acl); + if (!IS_ERR(fid)) { + v9fs_set_acl(fid, ACL_TYPE_DEFAULT, dacl); + v9fs_set_acl(fid, ACL_TYPE_ACCESS, acl); } - posix_acl_release(*dpacl); - posix_acl_release(*pacl); - *dpacl = *pacl = NULL; return 0; } +void v9fs_put_acl(struct posix_acl *dacl, + struct posix_acl *acl) +{ + posix_acl_release(dacl); + posix_acl_release(acl); +} + int v9fs_acl_mode(struct inode *dir, umode_t *modep, struct posix_acl **dpacl, struct posix_acl **pacl) { |