diff options
Diffstat (limited to 'fs/cifs/cifsglob.h')
-rw-r--r-- | fs/cifs/cifsglob.h | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h index f5a1f9bb3a9f..0cdfb8c32ac6 100644 --- a/fs/cifs/cifsglob.h +++ b/fs/cifs/cifsglob.h | |||
@@ -16,6 +16,9 @@ | |||
16 | * the GNU Lesser General Public License for more details. | 16 | * the GNU Lesser General Public License for more details. |
17 | * | 17 | * |
18 | */ | 18 | */ |
19 | #ifndef _CIFS_GLOB_H | ||
20 | #define _CIFS_GLOB_H | ||
21 | |||
19 | #include <linux/in.h> | 22 | #include <linux/in.h> |
20 | #include <linux/in6.h> | 23 | #include <linux/in6.h> |
21 | #include <linux/slab.h> | 24 | #include <linux/slab.h> |
@@ -34,7 +37,7 @@ | |||
34 | #define MAX_SHARE_SIZE 64 /* used to be 20, this should still be enough */ | 37 | #define MAX_SHARE_SIZE 64 /* used to be 20, this should still be enough */ |
35 | #define MAX_USERNAME_SIZE 32 /* 32 is to allow for 15 char names + null | 38 | #define MAX_USERNAME_SIZE 32 /* 32 is to allow for 15 char names + null |
36 | termination then *2 for unicode versions */ | 39 | termination then *2 for unicode versions */ |
37 | #define MAX_PASSWORD_SIZE 16 | 40 | #define MAX_PASSWORD_SIZE 512 /* max for windows seems to be 256 wide chars */ |
38 | 41 | ||
39 | #define CIFS_MIN_RCV_POOL 4 | 42 | #define CIFS_MIN_RCV_POOL 4 |
40 | 43 | ||
@@ -80,8 +83,7 @@ enum statusEnum { | |||
80 | }; | 83 | }; |
81 | 84 | ||
82 | enum securityEnum { | 85 | enum securityEnum { |
83 | PLAINTXT = 0, /* Legacy with Plaintext passwords */ | 86 | LANMAN = 0, /* Legacy LANMAN auth */ |
84 | LANMAN, /* Legacy LANMAN auth */ | ||
85 | NTLM, /* Legacy NTLM012 auth with NTLM hash */ | 87 | NTLM, /* Legacy NTLM012 auth with NTLM hash */ |
86 | NTLMv2, /* Legacy NTLM auth with NTLMv2 hash */ | 88 | NTLMv2, /* Legacy NTLM auth with NTLMv2 hash */ |
87 | RawNTLMSSP, /* NTLMSSP without SPNEGO, NTLMv2 hash */ | 89 | RawNTLMSSP, /* NTLMSSP without SPNEGO, NTLMv2 hash */ |
@@ -142,7 +144,6 @@ struct TCP_Server_Info { | |||
142 | struct list_head pending_mid_q; | 144 | struct list_head pending_mid_q; |
143 | void *Server_NlsInfo; /* BB - placeholder for future NLS info */ | 145 | void *Server_NlsInfo; /* BB - placeholder for future NLS info */ |
144 | unsigned short server_codepage; /* codepage for the server */ | 146 | unsigned short server_codepage; /* codepage for the server */ |
145 | unsigned long ip_address; /* IP addr for the server if known */ | ||
146 | enum protocolEnum protocolType; | 147 | enum protocolEnum protocolType; |
147 | char versionMajor; | 148 | char versionMajor; |
148 | char versionMinor; | 149 | char versionMinor; |
@@ -190,19 +191,9 @@ struct TCP_Server_Info { | |||
190 | bool sec_mskerberos; /* supports legacy MS Kerberos */ | 191 | bool sec_mskerberos; /* supports legacy MS Kerberos */ |
191 | bool sec_kerberosu2u; /* supports U2U Kerberos */ | 192 | bool sec_kerberosu2u; /* supports U2U Kerberos */ |
192 | bool sec_ntlmssp; /* supports NTLMSSP */ | 193 | bool sec_ntlmssp; /* supports NTLMSSP */ |
193 | }; | 194 | #ifdef CONFIG_CIFS_FSCACHE |
194 | 195 | struct fscache_cookie *fscache; /* client index cache cookie */ | |
195 | /* | 196 | #endif |
196 | * The following is our shortcut to user information. We surface the uid, | ||
197 | * and name. We always get the password on the fly in case it | ||
198 | * has changed. We also hang a list of sessions owned by this user off here. | ||
199 | */ | ||
200 | struct cifsUidInfo { | ||
201 | struct list_head userList; | ||
202 | struct list_head sessionList; /* SMB sessions for this user */ | ||
203 | uid_t linux_uid; | ||
204 | char user[MAX_USERNAME_SIZE + 1]; /* ascii name of user */ | ||
205 | /* BB may need ptr or callback for PAM or WinBind info */ | ||
206 | }; | 197 | }; |
207 | 198 | ||
208 | /* | 199 | /* |
@@ -212,9 +203,6 @@ struct cifsSesInfo { | |||
212 | struct list_head smb_ses_list; | 203 | struct list_head smb_ses_list; |
213 | struct list_head tcon_list; | 204 | struct list_head tcon_list; |
214 | struct mutex session_mutex; | 205 | struct mutex session_mutex; |
215 | #if 0 | ||
216 | struct cifsUidInfo *uidInfo; /* pointer to user info */ | ||
217 | #endif | ||
218 | struct TCP_Server_Info *server; /* pointer to server info */ | 206 | struct TCP_Server_Info *server; /* pointer to server info */ |
219 | int ses_count; /* reference counter */ | 207 | int ses_count; /* reference counter */ |
220 | enum statusEnum status; | 208 | enum statusEnum status; |
@@ -226,7 +214,8 @@ struct cifsSesInfo { | |||
226 | char *serverNOS; /* name of network operating system of server */ | 214 | char *serverNOS; /* name of network operating system of server */ |
227 | char *serverDomain; /* security realm of server */ | 215 | char *serverDomain; /* security realm of server */ |
228 | int Suid; /* remote smb uid */ | 216 | int Suid; /* remote smb uid */ |
229 | uid_t linux_uid; /* local Linux uid */ | 217 | uid_t linux_uid; /* overriding owner of files on the mount */ |
218 | uid_t cred_uid; /* owner of credentials */ | ||
230 | int capabilities; | 219 | int capabilities; |
231 | char serverName[SERVER_NAME_LEN_WITH_NULL * 2]; /* BB make bigger for | 220 | char serverName[SERVER_NAME_LEN_WITH_NULL * 2]; /* BB make bigger for |
232 | TCP names - will ipv6 and sctp addresses fit? */ | 221 | TCP names - will ipv6 and sctp addresses fit? */ |
@@ -311,6 +300,10 @@ struct cifsTconInfo { | |||
311 | bool local_lease:1; /* check leases (only) on local system not remote */ | 300 | bool local_lease:1; /* check leases (only) on local system not remote */ |
312 | bool broken_posix_open; /* e.g. Samba server versions < 3.3.2, 3.2.9 */ | 301 | bool broken_posix_open; /* e.g. Samba server versions < 3.3.2, 3.2.9 */ |
313 | bool need_reconnect:1; /* connection reset, tid now invalid */ | 302 | bool need_reconnect:1; /* connection reset, tid now invalid */ |
303 | #ifdef CONFIG_CIFS_FSCACHE | ||
304 | u64 resource_id; /* server resource id */ | ||
305 | struct fscache_cookie *fscache; /* cookie for share */ | ||
306 | #endif | ||
314 | /* BB add field for back pointer to sb struct(s)? */ | 307 | /* BB add field for back pointer to sb struct(s)? */ |
315 | }; | 308 | }; |
316 | 309 | ||
@@ -398,6 +391,9 @@ struct cifsInodeInfo { | |||
398 | bool invalid_mapping:1; /* pagecache is invalid */ | 391 | bool invalid_mapping:1; /* pagecache is invalid */ |
399 | u64 server_eof; /* current file size on server */ | 392 | u64 server_eof; /* current file size on server */ |
400 | u64 uniqueid; /* server inode number */ | 393 | u64 uniqueid; /* server inode number */ |
394 | #ifdef CONFIG_CIFS_FSCACHE | ||
395 | struct fscache_cookie *fscache; | ||
396 | #endif | ||
401 | struct inode vfs_inode; | 397 | struct inode vfs_inode; |
402 | }; | 398 | }; |
403 | 399 | ||
@@ -735,3 +731,7 @@ GLOBAL_EXTERN unsigned int cifs_max_pending; /* MAX requests at once to server*/ | |||
735 | void cifs_oplock_break(struct work_struct *work); | 731 | void cifs_oplock_break(struct work_struct *work); |
736 | void cifs_oplock_break_get(struct cifsFileInfo *cfile); | 732 | void cifs_oplock_break_get(struct cifsFileInfo *cfile); |
737 | void cifs_oplock_break_put(struct cifsFileInfo *cfile); | 733 | void cifs_oplock_break_put(struct cifsFileInfo *cfile); |
734 | |||
735 | extern const struct slow_work_ops cifs_oplock_break_ops; | ||
736 | |||
737 | #endif /* _CIFS_GLOB_H */ | ||