#include <linux/ctype.h>
#include "cifsglob.h"
#include "cifsproto.h"
#include "smb2proto.h"
#include "cifs_debug.h"
#include "cifs_unicode.h"
#include "smb2status.h"
#include "smb2glob.h"
#include "nterr.h"
#include "cached_dir.h"
static int
check_smb2_hdr(struct smb2_hdr *shdr, __u64 mid)
{ … }
static const __le16 smb2_rsp_struct_sizes[NUMBER_OF_SMB2_COMMANDS] = …;
#define SMB311_NEGPROT_BASE_SIZE …
static __u32 get_neg_ctxt_len(struct smb2_hdr *hdr, __u32 len,
__u32 non_ctxlen)
{ … }
int
smb2_check_message(char *buf, unsigned int len, struct TCP_Server_Info *server)
{ … }
static const bool has_smb2_data_area[NUMBER_OF_SMB2_COMMANDS] = …;
char *
smb2_get_data_area_len(int *off, int *len, struct smb2_hdr *shdr)
{ … }
unsigned int
smb2_calc_size(void *buf)
{ … }
__le16 *
cifs_convert_path_to_utf16(const char *from, struct cifs_sb_info *cifs_sb)
{ … }
__le32
smb2_get_lease_state(struct cifsInodeInfo *cinode)
{ … }
struct smb2_lease_break_work { … };
static void
cifs_ses_oplock_break(struct work_struct *work)
{ … }
static void
smb2_queue_pending_open_break(struct tcon_link *tlink, __u8 *lease_key,
__le32 new_lease_state)
{ … }
static bool
smb2_tcon_has_lease(struct cifs_tcon *tcon, struct smb2_lease_break *rsp)
{ … }
static struct cifs_pending_open *
smb2_tcon_find_pending_open_lease(struct cifs_tcon *tcon,
struct smb2_lease_break *rsp)
{ … }
static bool
smb2_is_valid_lease_break(char *buffer, struct TCP_Server_Info *server)
{ … }
bool
smb2_is_valid_oplock_break(char *buffer, struct TCP_Server_Info *server)
{ … }
void
smb2_cancelled_close_fid(struct work_struct *work)
{ … }
static int
__smb2_handle_cancelled_cmd(struct cifs_tcon *tcon, __u16 cmd, __u64 mid,
__u64 persistent_fid, __u64 volatile_fid)
{ … }
int
smb2_handle_cancelled_close(struct cifs_tcon *tcon, __u64 persistent_fid,
__u64 volatile_fid)
{ … }
int
smb2_handle_cancelled_mid(struct mid_q_entry *mid, struct TCP_Server_Info *server)
{ … }
int
smb311_update_preauth_hash(struct cifs_ses *ses, struct TCP_Server_Info *server,
struct kvec *iov, int nvec)
{ … }