diff options
author | Steve French <sfrench@us.ibm.com> | 2007-10-19 21:57:39 +0000 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2007-10-19 21:57:39 +0000 |
commit | 4879b44829d94a1f8facf90cced3c5f23c5a8c62 (patch) | |
tree | 4fe294715e3c275cafcc2f2eebc531dd517b4440 /fs/cifs/cifsacl.c | |
parent | c4ec20717313daafba59225f812db89595952b83 (diff) |
[CIFS] ACL support part 5
Acked-by: Shirish Pargaonkar <shirishp@us.ibm.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/cifs/cifsacl.c')
-rw-r--r-- | fs/cifs/cifsacl.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/fs/cifs/cifsacl.c b/fs/cifs/cifsacl.c index e8e56353f5a1..e8083043a26c 100644 --- a/fs/cifs/cifsacl.c +++ b/fs/cifs/cifsacl.c @@ -129,6 +129,29 @@ int compare_sids(struct cifs_sid *ctsid, struct cifs_sid *cwsid) return (1); /* sids compare/match */ } +void get_mode_from_acl(struct inode * inode, const char * path) +{ + + if (inode == NULL) + return; + + /* find an open readable handle + if handle found + lock handle + else open file + if no open file can not hurt to check if path is null + GetCIFSACL + for all ACEs in ACL { + if U or G or O + inode->i_mode = parse_ace(file_type, UG or O, ace->perms, inode->i_mode) + else continue + } + if handle open close it + else unlock handle */ + + return; +} + static void parse_ace(struct cifs_ace *pace, char *end_of_acl) { |