diff options
author | Steve French <sfrench@us.ibm.com> | 2007-10-12 00:11:59 -0400 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2007-10-12 00:11:59 -0400 |
commit | 297647c21f11dc1449f9bdb1601ae43e951bba0b (patch) | |
tree | 17cea90be1ab27138b4c6c19bf2b8e45097c3ac6 /fs/cifs/cifsacl.h | |
parent | a013689ddb2a4ba5f0452c053c0bf00bafb686f1 (diff) |
[CIFS] CIFS ACL support part 3
Signed-off-by: Shirish Pargaonkar <shirishp@us.ibm.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/cifs/cifsacl.h')
-rw-r--r-- | fs/cifs/cifsacl.h | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/fs/cifs/cifsacl.h b/fs/cifs/cifsacl.h index bf297ea1905a..1b115641b722 100644 --- a/fs/cifs/cifsacl.h +++ b/fs/cifs/cifsacl.h | |||
@@ -22,6 +22,10 @@ | |||
22 | #ifndef _CIFSACL_H | 22 | #ifndef _CIFSACL_H |
23 | #define _CIFSACL_H | 23 | #define _CIFSACL_H |
24 | 24 | ||
25 | |||
26 | #define NUM_WK_SIDS 7 /* number of well known sids */ | ||
27 | #define SIDNAMELENGTH 20 /* long enough for the ones we care about */ | ||
28 | |||
25 | struct cifs_ntsd { | 29 | struct cifs_ntsd { |
26 | __u16 revision; /* revision level */ | 30 | __u16 revision; /* revision level */ |
27 | __u16 type; | 31 | __u16 type; |
@@ -35,7 +39,7 @@ struct cifs_sid { | |||
35 | __u8 revision; /* revision level */ | 39 | __u8 revision; /* revision level */ |
36 | __u8 num_subauth; | 40 | __u8 num_subauth; |
37 | __u8 authority[6]; | 41 | __u8 authority[6]; |
38 | __u32 sub_auth[0]; /* sub_auth[num_subauth] */ | 42 | __u32 sub_auth[5]; /* sub_auth[num_subauth] */ |
39 | } __attribute__((packed)); | 43 | } __attribute__((packed)); |
40 | 44 | ||
41 | struct cifs_acl { | 45 | struct cifs_acl { |
@@ -55,12 +59,20 @@ struct cifs_ace { /* last part of ACE which includes user info */ | |||
55 | __u8 revision; /* revision level */ | 59 | __u8 revision; /* revision level */ |
56 | __u8 num_subauth; | 60 | __u8 num_subauth; |
57 | __u8 authority[6]; | 61 | __u8 authority[6]; |
58 | __u32 sub_auth[0]; | 62 | __u32 sub_auth[5]; |
63 | } __attribute__((packed)); | ||
64 | |||
65 | struct cifs_wksid { | ||
66 | struct cifs_sid cifssid; | ||
67 | char sidname[SIDNAMELENGTH]; | ||
59 | } __attribute__((packed)); | 68 | } __attribute__((packed)); |
60 | 69 | ||
61 | /* everyone */ | 70 | #ifdef CONFIG_CIFS_EXPERIMENTAL |
62 | /* extern const struct cifs_sid sid_everyone;*/ | 71 | |
63 | /* group users */ | 72 | extern struct cifs_wksid wksidarr[NUM_WK_SIDS]; |
64 | /* extern const struct cifs_sid sid_user;*/ | 73 | extern int match_sid(struct cifs_sid *); |
74 | extern int compare_sids(struct cifs_sid *, struct cifs_sid *); | ||
75 | |||
76 | #endif /* CONFIG_CIFS_EXPERIMENTAL */ | ||
65 | 77 | ||
66 | #endif /* _CIFSACL_H */ | 78 | #endif /* _CIFSACL_H */ |