Linux Kernel
3.7.1
|
#include <linux/in.h>
#include <linux/in6.h>
#include <linux/slab.h>
#include <linux/mempool.h>
#include <linux/workqueue.h>
#include "cifs_fs_sb.h"
#include "cifsacl.h"
#include <crypto/internal/hash.h>
#include <linux/scatterlist.h>
#include "cifspdu.h"
Go to the source code of this file.
Data Structures | |
struct | session_key |
struct | sdesc |
struct | cifs_secmech |
struct | ntlmssp_auth |
struct | cifs_cred |
struct | smb_rqst |
struct | smb_version_operations |
struct | smb_version_values |
struct | smb_vol |
struct | cifs_mnt_data |
struct | TCP_Server_Info |
struct | cifs_ses |
struct | cifs_tcon |
struct | tcon_link |
struct | cifs_pending_open |
struct | cifsLockInfo |
struct | cifs_search_info |
struct | cifs_fid |
struct | cifs_fid_locks |
struct | cifsFileInfo |
struct | cifs_io_parms |
struct | cifs_readdata |
struct | cifs_writedata |
struct | cifsInodeInfo |
struct | mid_q_entry |
struct | dir_notify_req |
struct | dfs_info3_param |
struct | cifs_fattr |
Macros | |
#define | CIFS_MAGIC_NUMBER 0xFF534D42 /* the first four bytes of SMB PDUs */ |
#define | MAX_UID_INFO 16 |
#define | MAX_SES_INFO 2 |
#define | MAX_TCON_INFO 4 |
#define | MAX_TREE_SIZE (2 + MAX_SERVER_SIZE + 1 + MAX_SHARE_SIZE + 1) |
#define | MAX_SERVER_SIZE 15 |
#define | MAX_SHARE_SIZE 80 |
#define | MAX_USERNAME_SIZE 256 /* reasonable maximum for current servers */ |
#define | MAX_PASSWORD_SIZE 512 /* max for windows seems to be 256 wide chars */ |
#define | CIFS_MIN_RCV_POOL 4 |
#define | MAX_REOPEN_ATT 5 /* these many maximum attempts to reopen a file */ |
#define | CIFS_DEF_ACTIMEO (1 * HZ) |
#define | CIFS_MAX_ACTIMEO (1 << 30) |
#define | CIFS_MAX_REQ 32767 |
#define | RFC1001_NAME_LEN 15 |
#define | RFC1001_NAME_LEN_WITH_NULL (RFC1001_NAME_LEN + 1) |
#define | SERVER_NAME_LENGTH 40 |
#define | SERVER_NAME_LEN_WITH_NULL (SERVER_NAME_LENGTH + 1) |
#define | MAX_NAME 514 |
#define | SMB_ECHO_INTERVAL (60 * HZ) |
#define | XATTR_DOS_ATTRIB "user.DOSATTRIB" |
#define | HEADER_SIZE(server) (server->vals->header_size) |
#define | MAX_HEADER_SIZE(server) (server->vals->max_header_size) |
#define | CIFS_MOUNT_MASK |
#define | CIFS_MS_MASK |
#define | CIFS_MAX_WSIZE ((1<<24) - 1 - sizeof(WRITE_REQ) + 4) |
#define | CIFS_MAX_RSIZE ((1<<24) - sizeof(READ_RSP) + 4) |
#define | CIFS_MAX_RFC1002_WSIZE ((1<<17) - 1 - sizeof(WRITE_REQ) + 4) |
#define | CIFS_MAX_RFC1002_RSIZE ((1<<17) - 1 - sizeof(READ_RSP) + 4) |
#define | CIFS_DEFAULT_IOSIZE (1024 * 1024) |
#define | CIFS_DEFAULT_NON_POSIX_RSIZE (60 * 1024) |
#define | CIFS_DEFAULT_NON_POSIX_WSIZE (65536) |
#define | CIFS_SES_NT4 1 |
#define | CIFS_SES_OS2 2 |
#define | CIFS_SES_W9X 4 |
#define | CIFS_SES_LANMAN 8 |
#define | TCON_LINK_MASTER 0 |
#define | TCON_LINK_PENDING 1 |
#define | TCON_LINK_IN_TREE 2 |
#define | CIFS_OPLOCK_NO_CHANGE 0xfe |
#define | cifs_stats_inc(field) do {} while (0) |
#define | cifs_stats_bytes_written(tcon, bytes) do {} while (0) |
#define | cifs_stats_bytes_read(tcon, bytes) do {} while (0) |
#define | CIFS_FATTR_DFS_REFERRAL 0x1 |
#define | CIFS_FATTR_DELETE_PENDING 0x2 |
#define | CIFS_FATTR_NEED_REVAL 0x4 |
#define | CIFS_FATTR_INO_COLLISION 0x8 |
#define | MID_FREE 0 |
#define | MID_REQUEST_ALLOCATED 1 |
#define | MID_REQUEST_SUBMITTED 2 |
#define | MID_RESPONSE_RECEIVED 4 |
#define | MID_RETRY_NEEDED 8 /* session closed while this request out */ |
#define | MID_RESPONSE_MALFORMED 0x10 |
#define | MID_SHUTDOWN 0x20 |
#define | CIFS_NO_BUFFER 0 /* Response buffer not returned */ |
#define | CIFS_SMALL_BUFFER 1 |
#define | CIFS_LARGE_BUFFER 2 |
#define | CIFS_IOVEC 4 /* array of response buffers */ |
#define | CIFS_BLOCKING_OP 1 /* operation can block */ |
#define | CIFS_ASYNC_OP 2 /* do not wait for response */ |
#define | CIFS_TIMEOUT_MASK 0x003 /* only one of above set in req */ |
#define | CIFS_LOG_ERROR 0x010 /* log NT STATUS if non-zero */ |
#define | CIFS_LARGE_BUF_OP 0x020 /* large request buffer */ |
#define | CIFS_NO_RESP 0x040 /* no response buffer required */ |
#define | CIFS_ECHO_OP 0x080 /* echo request */ |
#define | CIFS_OBREAK_OP 0x0100 /* oplock break request */ |
#define | CIFS_NEG_OP 0x0200 /* negotiate request */ |
#define | CIFS_OP_MASK 0x0380 /* mask request type */ |
#define | CIFSSEC_MAY_SIGN 0x00001 |
#define | CIFSSEC_MAY_NTLM 0x00002 |
#define | CIFSSEC_MAY_NTLMV2 0x00004 |
#define | CIFSSEC_MAY_KRB5 0x00008 |
#define | CIFSSEC_MAY_LANMAN 0 |
#define | CIFSSEC_MAY_PLNTXT 0 |
#define | CIFSSEC_MAY_SEAL 0x00040 /* not supported yet */ |
#define | CIFSSEC_MAY_NTLMSSP 0x00080 /* raw ntlmssp with ntlmv2 */ |
#define | CIFSSEC_MUST_SIGN 0x01001 |
#define | CIFSSEC_MUST_NTLM 0x02002 |
#define | CIFSSEC_MUST_NTLMV2 0x04004 |
#define | CIFSSEC_MUST_KRB5 0x08008 |
#define | CIFSSEC_MUST_LANMAN 0 |
#define | CIFSSEC_MUST_PLNTXT 0 |
#define | CIFSSEC_MASK 0x87087 /* flags supported if no weak allowed */ |
#define | CIFSSEC_MUST_SEAL 0x40040 /* not supported yet */ |
#define | CIFSSEC_MUST_NTLMSSP 0x80080 /* raw ntlmssp with ntlmv2 */ |
#define | CIFSSEC_DEF (CIFSSEC_MAY_SIGN | CIFSSEC_MAY_NTLM | CIFSSEC_MAY_NTLMV2 | CIFSSEC_MAY_NTLMSSP) |
#define | CIFSSEC_MAX (CIFSSEC_MUST_SIGN | CIFSSEC_MUST_NTLMV2) |
#define | CIFSSEC_AUTH_MASK (CIFSSEC_MAY_NTLM | CIFSSEC_MAY_NTLMV2 | CIFSSEC_MAY_LANMAN | CIFSSEC_MAY_PLNTXT | CIFSSEC_MAY_KRB5 | CIFSSEC_MAY_NTLMSSP) |
#define | UID_HASH (16) |
#define | GLOBAL_EXTERN extern |
#define | SMB1_VERSION_STRING "1.0" |
#define | SMB20_VERSION_STRING "2.0" |
#define | SMB21_VERSION_STRING "2.1" |
#define | SMB30_VERSION_STRING "3.0" |
Typedefs | |
typedef int( | mid_receive_t )(struct TCP_Server_Info *server, struct mid_q_entry *mid) |
typedef void( | mid_callback_t )(struct mid_q_entry *mid) |
Enumerations | |
enum | statusEnum { CifsNew = 0, CifsGood, CifsExiting, CifsNeedReconnect, CifsNeedNegotiate } |
enum | securityEnum { LANMAN = 0, NTLM, NTLMv2, RawNTLMSSP, Kerberos } |
enum | protocolEnum { TCP = 0, SCTP } |
enum | smb_version { Smb_1 = 1, Smb_21, Smb_30 } |
Functions | |
struct tcon_link * | cifs_sb_tlink (struct cifs_sb_info *cifs_sb) |
void | cifs_put_tlink (struct tcon_link *tlink) |
struct cifs_tcon * | cifs_sb_master_tcon (struct cifs_sb_info *cifs_sb) |
struct cifsFileInfo * | cifsFileInfo_get (struct cifsFileInfo *cifs_file) |
void | cifsFileInfo_put (struct cifsFileInfo *cifs_file) |
void | cifs_oplock_break (struct work_struct *work) |
Definition at line 1311 of file cifsglob.h.
Definition at line 1310 of file cifsglob.h.
#define CIFS_DEF_ACTIMEO (1 * HZ) |
Definition at line 56 of file cifsglob.h.
#define CIFS_DEFAULT_IOSIZE (1024 * 1024) |
Definition at line 642 of file cifsglob.h.
#define CIFS_DEFAULT_NON_POSIX_RSIZE (60 * 1024) |
Definition at line 655 of file cifsglob.h.
#define CIFS_DEFAULT_NON_POSIX_WSIZE (65536) |
Definition at line 656 of file cifsglob.h.
#define CIFS_ECHO_OP 0x080 /* echo request */ |
Definition at line 1318 of file cifsglob.h.
#define CIFS_FATTR_DELETE_PENDING 0x2 |
Definition at line 1251 of file cifsglob.h.
#define CIFS_FATTR_DFS_REFERRAL 0x1 |
Definition at line 1250 of file cifsglob.h.
#define CIFS_FATTR_INO_COLLISION 0x8 |
Definition at line 1253 of file cifsglob.h.
#define CIFS_FATTR_NEED_REVAL 0x4 |
Definition at line 1252 of file cifsglob.h.
#define CIFS_IOVEC 4 /* array of response buffers */ |
Definition at line 1307 of file cifsglob.h.
#define CIFS_LARGE_BUF_OP 0x020 /* large request buffer */ |
Definition at line 1314 of file cifsglob.h.
#define CIFS_LARGE_BUFFER 2 |
Definition at line 1306 of file cifsglob.h.
#define CIFS_LOG_ERROR 0x010 /* log NT STATUS if non-zero */ |
Definition at line 1313 of file cifsglob.h.
#define CIFS_MAGIC_NUMBER 0xFF534D42 /* the first four bytes of SMB PDUs */ |
Definition at line 35 of file cifsglob.h.
#define CIFS_MAX_ACTIMEO (1 << 30) |
Definition at line 61 of file cifsglob.h.
#define CIFS_MAX_REQ 32767 |
Definition at line 67 of file cifsglob.h.
#define CIFS_MAX_RFC1002_RSIZE ((1<<17) - 1 - sizeof(READ_RSP) + 4) |
Definition at line 635 of file cifsglob.h.
#define CIFS_MAX_RFC1002_WSIZE ((1<<17) - 1 - sizeof(WRITE_REQ) + 4) |
Definition at line 634 of file cifsglob.h.
#define CIFS_MAX_RSIZE ((1<<24) - sizeof(READ_RSP) + 4) |
Definition at line 627 of file cifsglob.h.
#define CIFS_MAX_WSIZE ((1<<24) - 1 - sizeof(WRITE_REQ) + 4) |
Definition at line 626 of file cifsglob.h.
#define CIFS_MIN_RCV_POOL 4 |
Definition at line 50 of file cifsglob.h.
#define CIFS_MOUNT_MASK |
Definition at line 456 of file cifsglob.h.
#define CIFS_MS_MASK |
Definition at line 467 of file cifsglob.h.
#define CIFS_NEG_OP 0x0200 /* negotiate request */ |
Definition at line 1320 of file cifsglob.h.
#define CIFS_NO_BUFFER 0 /* Response buffer not returned */ |
Definition at line 1304 of file cifsglob.h.
#define CIFS_NO_RESP 0x040 /* no response buffer required */ |
Definition at line 1315 of file cifsglob.h.
#define CIFS_OBREAK_OP 0x0100 /* oplock break request */ |
Definition at line 1319 of file cifsglob.h.
#define CIFS_OP_MASK 0x0380 /* mask request type */ |
Definition at line 1321 of file cifsglob.h.
#define CIFS_OPLOCK_NO_CHANGE 0xfe |
Definition at line 872 of file cifsglob.h.
#define CIFS_SES_LANMAN 8 |
Definition at line 730 of file cifsglob.h.
#define CIFS_SES_NT4 1 |
Definition at line 724 of file cifsglob.h.
#define CIFS_SES_OS2 2 |
Definition at line 725 of file cifsglob.h.
#define CIFS_SES_W9X 4 |
Definition at line 726 of file cifsglob.h.
#define CIFS_SMALL_BUFFER 1 |
Definition at line 1305 of file cifsglob.h.
#define cifs_stats_bytes_read | ( | tcon, | |
bytes | |||
) | do {} while (0) |
Definition at line 1120 of file cifsglob.h.
#define cifs_stats_bytes_written | ( | tcon, | |
bytes | |||
) | do {} while (0) |
Definition at line 1119 of file cifsglob.h.
#define cifs_stats_inc | ( | field | ) | do {} while (0) |
Definition at line 1118 of file cifsglob.h.
#define CIFS_TIMEOUT_MASK 0x003 /* only one of above set in req */ |
Definition at line 1312 of file cifsglob.h.
#define CIFSSEC_AUTH_MASK (CIFSSEC_MAY_NTLM | CIFSSEC_MAY_NTLMV2 | CIFSSEC_MAY_LANMAN | CIFSSEC_MAY_PLNTXT | CIFSSEC_MAY_KRB5 | CIFSSEC_MAY_NTLMSSP) |
Definition at line 1367 of file cifsglob.h.
#define CIFSSEC_DEF (CIFSSEC_MAY_SIGN | CIFSSEC_MAY_NTLM | CIFSSEC_MAY_NTLMV2 | CIFSSEC_MAY_NTLMSSP) |
Definition at line 1365 of file cifsglob.h.
#define CIFSSEC_MASK 0x87087 /* flags supported if no weak allowed */ |
Definition at line 1359 of file cifsglob.h.
#define CIFSSEC_MAX (CIFSSEC_MUST_SIGN | CIFSSEC_MUST_NTLMV2) |
Definition at line 1366 of file cifsglob.h.
#define CIFSSEC_MAY_KRB5 0x00008 |
Definition at line 1327 of file cifsglob.h.
#define CIFSSEC_MAY_LANMAN 0 |
Definition at line 1332 of file cifsglob.h.
#define CIFSSEC_MAY_NTLM 0x00002 |
Definition at line 1325 of file cifsglob.h.
#define CIFSSEC_MAY_NTLMSSP 0x00080 /* raw ntlmssp with ntlmv2 */ |
Definition at line 1336 of file cifsglob.h.
#define CIFSSEC_MAY_NTLMV2 0x00004 |
Definition at line 1326 of file cifsglob.h.
#define CIFSSEC_MAY_PLNTXT 0 |
Definition at line 1333 of file cifsglob.h.
#define CIFSSEC_MAY_SEAL 0x00040 /* not supported yet */ |
Definition at line 1335 of file cifsglob.h.
#define CIFSSEC_MAY_SIGN 0x00001 |
Definition at line 1324 of file cifsglob.h.
#define CIFSSEC_MUST_KRB5 0x08008 |
Definition at line 1344 of file cifsglob.h.
#define CIFSSEC_MUST_LANMAN 0 |
Definition at line 1354 of file cifsglob.h.
#define CIFSSEC_MUST_NTLM 0x02002 |
Definition at line 1342 of file cifsglob.h.
#define CIFSSEC_MUST_NTLMSSP 0x80080 /* raw ntlmssp with ntlmv2 */ |
Definition at line 1363 of file cifsglob.h.
#define CIFSSEC_MUST_NTLMV2 0x04004 |
Definition at line 1343 of file cifsglob.h.
#define CIFSSEC_MUST_PLNTXT 0 |
Definition at line 1355 of file cifsglob.h.
#define CIFSSEC_MUST_SEAL 0x40040 /* not supported yet */ |
Definition at line 1362 of file cifsglob.h.
#define CIFSSEC_MUST_SIGN 0x01001 |
Definition at line 1338 of file cifsglob.h.
#define GLOBAL_EXTERN extern |
Definition at line 1406 of file cifsglob.h.
#define HEADER_SIZE | ( | server | ) | (server->vals->header_size) |
Definition at line 391 of file cifsglob.h.
#define MAX_HEADER_SIZE | ( | server | ) | (server->vals->max_header_size) |
Definition at line 392 of file cifsglob.h.
#define MAX_NAME 514 |
Definition at line 79 of file cifsglob.h.
Definition at line 48 of file cifsglob.h.
Definition at line 52 of file cifsglob.h.
#define MAX_SERVER_SIZE 15 |
Definition at line 45 of file cifsglob.h.
#define MAX_SES_INFO 2 |
Definition at line 41 of file cifsglob.h.
#define MAX_SHARE_SIZE 80 |
Definition at line 46 of file cifsglob.h.
#define MAX_TCON_INFO 4 |
Definition at line 42 of file cifsglob.h.
#define MAX_TREE_SIZE (2 + MAX_SERVER_SIZE + 1 + MAX_SHARE_SIZE + 1) |
Definition at line 44 of file cifsglob.h.
#define MAX_UID_INFO 16 |
Definition at line 40 of file cifsglob.h.
Definition at line 47 of file cifsglob.h.
#define MID_FREE 0 |
Definition at line 1295 of file cifsglob.h.
#define MID_REQUEST_ALLOCATED 1 |
Definition at line 1296 of file cifsglob.h.
#define MID_REQUEST_SUBMITTED 2 |
Definition at line 1297 of file cifsglob.h.
#define MID_RESPONSE_MALFORMED 0x10 |
Definition at line 1300 of file cifsglob.h.
#define MID_RESPONSE_RECEIVED 4 |
Definition at line 1298 of file cifsglob.h.
Definition at line 1299 of file cifsglob.h.
#define MID_SHUTDOWN 0x20 |
Definition at line 1301 of file cifsglob.h.
#define RFC1001_NAME_LEN 15 |
Definition at line 69 of file cifsglob.h.
#define RFC1001_NAME_LEN_WITH_NULL (RFC1001_NAME_LEN + 1) |
Definition at line 70 of file cifsglob.h.
#define SERVER_NAME_LEN_WITH_NULL (SERVER_NAME_LENGTH + 1) |
Definition at line 74 of file cifsglob.h.
#define SERVER_NAME_LENGTH 40 |
Definition at line 73 of file cifsglob.h.
#define SMB1_VERSION_STRING "1.0" |
Definition at line 1499 of file cifsglob.h.
#define SMB20_VERSION_STRING "2.0" |
Definition at line 1502 of file cifsglob.h.
#define SMB21_VERSION_STRING "2.1" |
Definition at line 1505 of file cifsglob.h.
#define SMB30_VERSION_STRING "3.0" |
Definition at line 1508 of file cifsglob.h.
#define SMB_ECHO_INTERVAL (60 * HZ) |
Definition at line 82 of file cifsglob.h.
#define TCON_LINK_IN_TREE 2 |
Definition at line 845 of file cifsglob.h.
#define TCON_LINK_MASTER 0 |
Definition at line 843 of file cifsglob.h.
#define TCON_LINK_PENDING 1 |
Definition at line 844 of file cifsglob.h.
#define UID_HASH (16) |
Definition at line 1374 of file cifsglob.h.
#define XATTR_DOS_ATTRIB "user.DOSATTRIB" |
Definition at line 87 of file cifsglob.h.
typedef void( mid_callback_t)(struct mid_q_entry *mid) |
Definition at line 1148 of file cifsglob.h.
typedef int( mid_receive_t)(struct TCP_Server_Info *server, struct mid_q_entry *mid) |
Definition at line 1137 of file cifsglob.h.
enum protocolEnum |
Definition at line 112 of file cifsglob.h.
enum securityEnum |
Definition at line 103 of file cifsglob.h.
enum smb_version |
Definition at line 179 of file cifsglob.h.
enum statusEnum |
Definition at line 95 of file cifsglob.h.
void cifs_oplock_break | ( | struct work_struct * | work | ) |
|
read |
|
read |
|
read |
void cifsFileInfo_put | ( | struct cifsFileInfo * | cifs_file | ) |
GLOBAL_EXTERN atomic_t bufAllocCount |
Definition at line 1460 of file cifsglob.h.
GLOBAL_EXTERN spinlock_t cifs_file_list_lock |
Definition at line 1433 of file cifsglob.h.
GLOBAL_EXTERN unsigned int cifs_max_pending |
Definition at line 1478 of file cifsglob.h.
mempool_t* cifs_mid_poolp |
GLOBAL_EXTERN unsigned int cifs_min_rcv |
Definition at line 1476 of file cifsglob.h.
GLOBAL_EXTERN unsigned int cifs_min_small |
Definition at line 1477 of file cifsglob.h.
struct slow_work_ops cifs_oplock_break_ops |
GLOBAL_EXTERN struct list_head cifs_tcp_ses_list |
Definition at line 1416 of file cifsglob.h.
GLOBAL_EXTERN spinlock_t cifs_tcp_ses_lock |
Definition at line 1424 of file cifsglob.h.
struct workqueue_struct* cifsiod_wq |
GLOBAL_EXTERN unsigned int CIFSMaxBufSize |
Definition at line 1475 of file cifsglob.h.
GLOBAL_EXTERN bool enable_oplocks |
Definition at line 1469 of file cifsglob.h.
GLOBAL_EXTERN unsigned int global_secflags |
Definition at line 1471 of file cifsglob.h.
GLOBAL_EXTERN unsigned int GlobalCurrentXid |
Definition at line 1445 of file cifsglob.h.
GLOBAL_EXTERN unsigned int GlobalMaxActiveXid |
Definition at line 1447 of file cifsglob.h.
GLOBAL_EXTERN spinlock_t GlobalMid_Lock |
Definition at line 1448 of file cifsglob.h.
GLOBAL_EXTERN unsigned int GlobalTotalActiveXid |
Definition at line 1446 of file cifsglob.h.
GLOBAL_EXTERN unsigned int linuxExtEnabled |
Definition at line 1474 of file cifsglob.h.
GLOBAL_EXTERN unsigned int lookupCacheEnabled |
Definition at line 1470 of file cifsglob.h.
GLOBAL_EXTERN atomic_t midCount |
Definition at line 1466 of file cifsglob.h.
GLOBAL_EXTERN atomic_t sesInfoAllocCount |
Definition at line 1453 of file cifsglob.h.
GLOBAL_EXTERN unsigned int sign_CIFS_PDUs |
Definition at line 1473 of file cifsglob.h.
struct smb_version_operations smb1_operations |
struct smb_version_values smb1_values |
struct smb_version_values smb20_values |
struct smb_version_operations smb21_operations |
struct smb_version_values smb21_values |
struct smb_version_values smb30_values |
GLOBAL_EXTERN atomic_t smBufAllocCount |
Definition at line 1465 of file cifsglob.h.
GLOBAL_EXTERN atomic_t tconInfoAllocCount |
Definition at line 1454 of file cifsglob.h.
GLOBAL_EXTERN atomic_t tconInfoReconnectCount |
Definition at line 1457 of file cifsglob.h.
GLOBAL_EXTERN atomic_t tcpSesAllocCount |
Definition at line 1455 of file cifsglob.h.
GLOBAL_EXTERN atomic_t tcpSesReconnectCount |
Definition at line 1456 of file cifsglob.h.