summaryrefslogtreecommitdiffstats
path: root/fs/cifs/cifsacl.c
diff options
context:
space:
mode:
authorSteve French <sfrench@us.ibm.com>2007-10-19 21:57:39 +0000
committerSteve French <sfrench@us.ibm.com>2007-10-19 21:57:39 +0000
commit4879b44829d94a1f8facf90cced3c5f23c5a8c62 (patch)
tree4fe294715e3c275cafcc2f2eebc531dd517b4440 /fs/cifs/cifsacl.c
parentc4ec20717313daafba59225f812db89595952b83 (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.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/fs/cifs/cifsacl.c b/fs/cifs/cifsacl.c
index e8e56353f5a..e8083043a26 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)
{