diff options
| -rw-r--r-- | fs/cifs/misc.c | 2 | ||||
| -rw-r--r-- | fs/cifs/smb2glob.h | 5 | ||||
| -rw-r--r-- | fs/cifs/smb2maperror.c | 2 | ||||
| -rw-r--r-- | fs/cifs/smb2misc.c | 2 | ||||
| -rw-r--r-- | fs/cifs/smb2ops.c | 12 | ||||
| -rw-r--r-- | fs/cifs/smb2pdu.c | 28 | ||||
| -rw-r--r-- | fs/cifs/smb2pdu.h | 45 |
7 files changed, 41 insertions, 55 deletions
diff --git a/fs/cifs/misc.c b/fs/cifs/misc.c index 96849b530e32..aba3fc3058da 100644 --- a/fs/cifs/misc.c +++ b/fs/cifs/misc.c | |||
| @@ -148,7 +148,7 @@ cifs_buf_get(void) | |||
| 148 | * SMB2 header is bigger than CIFS one - no problems to clean some | 148 | * SMB2 header is bigger than CIFS one - no problems to clean some |
| 149 | * more bytes for CIFS. | 149 | * more bytes for CIFS. |
| 150 | */ | 150 | */ |
| 151 | size_t buf_size = sizeof(struct smb2_hdr); | 151 | size_t buf_size = sizeof(struct smb2_sync_hdr); |
| 152 | 152 | ||
| 153 | /* | 153 | /* |
| 154 | * We could use negotiated size instead of max_msgsize - | 154 | * We could use negotiated size instead of max_msgsize - |
diff --git a/fs/cifs/smb2glob.h b/fs/cifs/smb2glob.h index 401a5d856636..0ffa18094335 100644 --- a/fs/cifs/smb2glob.h +++ b/fs/cifs/smb2glob.h | |||
| @@ -61,9 +61,4 @@ | |||
| 61 | /* Maximum buffer size value we can send with 1 credit */ | 61 | /* Maximum buffer size value we can send with 1 credit */ |
| 62 | #define SMB2_MAX_BUFFER_SIZE 65536 | 62 | #define SMB2_MAX_BUFFER_SIZE 65536 |
| 63 | 63 | ||
| 64 | static inline struct smb2_sync_hdr *get_sync_hdr(void *buf) | ||
| 65 | { | ||
| 66 | return &(((struct smb2_hdr *)buf)->sync_hdr); | ||
| 67 | } | ||
| 68 | |||
| 69 | #endif /* _SMB2_GLOB_H */ | 64 | #endif /* _SMB2_GLOB_H */ |
diff --git a/fs/cifs/smb2maperror.c b/fs/cifs/smb2maperror.c index 86f1acaa759b..20a2d304c603 100644 --- a/fs/cifs/smb2maperror.c +++ b/fs/cifs/smb2maperror.c | |||
| @@ -2451,7 +2451,7 @@ smb2_print_status(__le32 status) | |||
| 2451 | int | 2451 | int |
| 2452 | map_smb2_to_linux_error(char *buf, bool log_err) | 2452 | map_smb2_to_linux_error(char *buf, bool log_err) |
| 2453 | { | 2453 | { |
| 2454 | struct smb2_sync_hdr *shdr = get_sync_hdr(buf); | 2454 | struct smb2_sync_hdr *shdr = (struct smb2_sync_hdr *)buf; |
| 2455 | unsigned int i; | 2455 | unsigned int i; |
| 2456 | int rc = -EIO; | 2456 | int rc = -EIO; |
| 2457 | __le32 smb2err = shdr->Status; | 2457 | __le32 smb2err = shdr->Status; |
diff --git a/fs/cifs/smb2misc.c b/fs/cifs/smb2misc.c index 2f1db5af7a65..d587a090292a 100644 --- a/fs/cifs/smb2misc.c +++ b/fs/cifs/smb2misc.c | |||
| @@ -716,7 +716,7 @@ smb2_cancelled_close_fid(struct work_struct *work) | |||
| 716 | int | 716 | int |
| 717 | smb2_handle_cancelled_mid(char *buffer, struct TCP_Server_Info *server) | 717 | smb2_handle_cancelled_mid(char *buffer, struct TCP_Server_Info *server) |
| 718 | { | 718 | { |
| 719 | struct smb2_sync_hdr *sync_hdr = get_sync_hdr(buffer); | 719 | struct smb2_sync_hdr *sync_hdr = (struct smb2_sync_hdr *)buffer; |
| 720 | struct smb2_create_rsp *rsp = (struct smb2_create_rsp *)buffer; | 720 | struct smb2_create_rsp *rsp = (struct smb2_create_rsp *)buffer; |
| 721 | struct cifs_tcon *tcon; | 721 | struct cifs_tcon *tcon; |
| 722 | struct close_cancelled_open *cancelled; | 722 | struct close_cancelled_open *cancelled; |
diff --git a/fs/cifs/smb2ops.c b/fs/cifs/smb2ops.c index f2bce73e23a0..b0f3bf9b32f9 100644 --- a/fs/cifs/smb2ops.c +++ b/fs/cifs/smb2ops.c | |||
| @@ -123,7 +123,7 @@ smb2_get_credits_field(struct TCP_Server_Info *server, const int optype) | |||
| 123 | static unsigned int | 123 | static unsigned int |
| 124 | smb2_get_credits(struct mid_q_entry *mid) | 124 | smb2_get_credits(struct mid_q_entry *mid) |
| 125 | { | 125 | { |
| 126 | struct smb2_sync_hdr *shdr = get_sync_hdr(mid->resp_buf); | 126 | struct smb2_sync_hdr *shdr = (struct smb2_sync_hdr *)mid->resp_buf; |
| 127 | 127 | ||
| 128 | return le16_to_cpu(shdr->CreditRequest); | 128 | return le16_to_cpu(shdr->CreditRequest); |
| 129 | } | 129 | } |
| @@ -190,7 +190,7 @@ static struct mid_q_entry * | |||
| 190 | smb2_find_mid(struct TCP_Server_Info *server, char *buf) | 190 | smb2_find_mid(struct TCP_Server_Info *server, char *buf) |
| 191 | { | 191 | { |
| 192 | struct mid_q_entry *mid; | 192 | struct mid_q_entry *mid; |
| 193 | struct smb2_sync_hdr *shdr = get_sync_hdr(buf); | 193 | struct smb2_sync_hdr *shdr = (struct smb2_sync_hdr *)buf; |
| 194 | __u64 wire_mid = le64_to_cpu(shdr->MessageId); | 194 | __u64 wire_mid = le64_to_cpu(shdr->MessageId); |
| 195 | 195 | ||
| 196 | if (shdr->ProtocolId == SMB2_TRANSFORM_PROTO_NUM) { | 196 | if (shdr->ProtocolId == SMB2_TRANSFORM_PROTO_NUM) { |
| @@ -215,7 +215,7 @@ static void | |||
| 215 | smb2_dump_detail(void *buf, struct TCP_Server_Info *server) | 215 | smb2_dump_detail(void *buf, struct TCP_Server_Info *server) |
| 216 | { | 216 | { |
| 217 | #ifdef CONFIG_CIFS_DEBUG2 | 217 | #ifdef CONFIG_CIFS_DEBUG2 |
| 218 | struct smb2_sync_hdr *shdr = get_sync_hdr(buf); | 218 | struct smb2_sync_hdr *shdr = (struct smb2_sync_hdr *)buf; |
| 219 | 219 | ||
| 220 | cifs_dbg(VFS, "Cmd: %d Err: 0x%x Flags: 0x%x Mid: %llu Pid: %d\n", | 220 | cifs_dbg(VFS, "Cmd: %d Err: 0x%x Flags: 0x%x Mid: %llu Pid: %d\n", |
| 221 | shdr->Command, shdr->Status, shdr->Flags, shdr->MessageId, | 221 | shdr->Command, shdr->Status, shdr->Flags, shdr->MessageId, |
| @@ -1303,7 +1303,7 @@ smb2_close_dir(const unsigned int xid, struct cifs_tcon *tcon, | |||
| 1303 | static bool | 1303 | static bool |
| 1304 | smb2_is_status_pending(char *buf, struct TCP_Server_Info *server, int length) | 1304 | smb2_is_status_pending(char *buf, struct TCP_Server_Info *server, int length) |
| 1305 | { | 1305 | { |
| 1306 | struct smb2_sync_hdr *shdr = get_sync_hdr(buf); | 1306 | struct smb2_sync_hdr *shdr = (struct smb2_sync_hdr *)buf; |
| 1307 | 1307 | ||
| 1308 | if (shdr->Status != STATUS_PENDING) | 1308 | if (shdr->Status != STATUS_PENDING) |
| 1309 | return false; | 1309 | return false; |
| @@ -1321,7 +1321,7 @@ smb2_is_status_pending(char *buf, struct TCP_Server_Info *server, int length) | |||
| 1321 | static bool | 1321 | static bool |
| 1322 | smb2_is_session_expired(char *buf) | 1322 | smb2_is_session_expired(char *buf) |
| 1323 | { | 1323 | { |
| 1324 | struct smb2_sync_hdr *shdr = get_sync_hdr(buf); | 1324 | struct smb2_sync_hdr *shdr = (struct smb2_sync_hdr *)buf; |
| 1325 | 1325 | ||
| 1326 | if (shdr->Status != STATUS_NETWORK_SESSION_EXPIRED && | 1326 | if (shdr->Status != STATUS_NETWORK_SESSION_EXPIRED && |
| 1327 | shdr->Status != STATUS_USER_SESSION_DELETED) | 1327 | shdr->Status != STATUS_USER_SESSION_DELETED) |
| @@ -2534,7 +2534,7 @@ handle_read_data(struct TCP_Server_Info *server, struct mid_q_entry *mid, | |||
| 2534 | unsigned int cur_page_idx; | 2534 | unsigned int cur_page_idx; |
| 2535 | unsigned int pad_len; | 2535 | unsigned int pad_len; |
| 2536 | struct cifs_readdata *rdata = mid->callback_data; | 2536 | struct cifs_readdata *rdata = mid->callback_data; |
| 2537 | struct smb2_sync_hdr *shdr = get_sync_hdr(buf); | 2537 | struct smb2_sync_hdr *shdr = (struct smb2_sync_hdr *)buf; |
| 2538 | struct bio_vec *bvec = NULL; | 2538 | struct bio_vec *bvec = NULL; |
| 2539 | struct iov_iter iter; | 2539 | struct iov_iter iter; |
| 2540 | struct kvec iov; | 2540 | struct kvec iov; |
diff --git a/fs/cifs/smb2pdu.c b/fs/cifs/smb2pdu.c index 21b69badcd31..134bb19b22aa 100644 --- a/fs/cifs/smb2pdu.c +++ b/fs/cifs/smb2pdu.c | |||
| @@ -767,7 +767,7 @@ SMB2_negotiate(const unsigned int xid, struct cifs_ses *ses) | |||
| 767 | server->capabilities |= SMB2_NT_FIND | SMB2_LARGE_FILES; | 767 | server->capabilities |= SMB2_NT_FIND | SMB2_LARGE_FILES; |
| 768 | 768 | ||
| 769 | security_blob = smb2_get_data_area_len(&blob_offset, &blob_length, | 769 | security_blob = smb2_get_data_area_len(&blob_offset, &blob_length, |
| 770 | &rsp->hdr.sync_hdr); | 770 | (struct smb2_sync_hdr *)rsp); |
| 771 | /* | 771 | /* |
| 772 | * See MS-SMB2 section 2.2.4: if no blob, client picks default which | 772 | * See MS-SMB2 section 2.2.4: if no blob, client picks default which |
| 773 | * for us will be | 773 | * for us will be |
| @@ -1131,7 +1131,7 @@ SMB2_auth_kerberos(struct SMB2_sess_data *sess_data) | |||
| 1131 | goto out_put_spnego_key; | 1131 | goto out_put_spnego_key; |
| 1132 | 1132 | ||
| 1133 | rsp = (struct smb2_sess_setup_rsp *)sess_data->iov[0].iov_base; | 1133 | rsp = (struct smb2_sess_setup_rsp *)sess_data->iov[0].iov_base; |
| 1134 | ses->Suid = rsp->hdr.sync_hdr.SessionId; | 1134 | ses->Suid = rsp->sync_hdr.SessionId; |
| 1135 | 1135 | ||
| 1136 | ses->session_flags = le16_to_cpu(rsp->SessionFlags); | 1136 | ses->session_flags = le16_to_cpu(rsp->SessionFlags); |
| 1137 | 1137 | ||
| @@ -1207,7 +1207,7 @@ SMB2_sess_auth_rawntlmssp_negotiate(struct SMB2_sess_data *sess_data) | |||
| 1207 | 1207 | ||
| 1208 | /* If true, rc here is expected and not an error */ | 1208 | /* If true, rc here is expected and not an error */ |
| 1209 | if (sess_data->buf0_type != CIFS_NO_BUFFER && | 1209 | if (sess_data->buf0_type != CIFS_NO_BUFFER && |
| 1210 | rsp->hdr.sync_hdr.Status == STATUS_MORE_PROCESSING_REQUIRED) | 1210 | rsp->sync_hdr.Status == STATUS_MORE_PROCESSING_REQUIRED) |
| 1211 | rc = 0; | 1211 | rc = 0; |
| 1212 | 1212 | ||
| 1213 | if (rc) | 1213 | if (rc) |
| @@ -1228,7 +1228,7 @@ SMB2_sess_auth_rawntlmssp_negotiate(struct SMB2_sess_data *sess_data) | |||
| 1228 | cifs_dbg(FYI, "rawntlmssp session setup challenge phase\n"); | 1228 | cifs_dbg(FYI, "rawntlmssp session setup challenge phase\n"); |
| 1229 | 1229 | ||
| 1230 | 1230 | ||
| 1231 | ses->Suid = rsp->hdr.sync_hdr.SessionId; | 1231 | ses->Suid = rsp->sync_hdr.SessionId; |
| 1232 | ses->session_flags = le16_to_cpu(rsp->SessionFlags); | 1232 | ses->session_flags = le16_to_cpu(rsp->SessionFlags); |
| 1233 | 1233 | ||
| 1234 | out: | 1234 | out: |
| @@ -1286,7 +1286,7 @@ SMB2_sess_auth_rawntlmssp_authenticate(struct SMB2_sess_data *sess_data) | |||
| 1286 | 1286 | ||
| 1287 | rsp = (struct smb2_sess_setup_rsp *)sess_data->iov[0].iov_base; | 1287 | rsp = (struct smb2_sess_setup_rsp *)sess_data->iov[0].iov_base; |
| 1288 | 1288 | ||
| 1289 | ses->Suid = rsp->hdr.sync_hdr.SessionId; | 1289 | ses->Suid = rsp->sync_hdr.SessionId; |
| 1290 | ses->session_flags = le16_to_cpu(rsp->SessionFlags); | 1290 | ses->session_flags = le16_to_cpu(rsp->SessionFlags); |
| 1291 | 1291 | ||
| 1292 | rc = SMB2_sess_establish_session(sess_data); | 1292 | rc = SMB2_sess_establish_session(sess_data); |
| @@ -1535,7 +1535,7 @@ SMB2_tcon(const unsigned int xid, struct cifs_ses *ses, const char *tree, | |||
| 1535 | tcon->maximal_access = le32_to_cpu(rsp->MaximalAccess); | 1535 | tcon->maximal_access = le32_to_cpu(rsp->MaximalAccess); |
| 1536 | tcon->tidStatus = CifsGood; | 1536 | tcon->tidStatus = CifsGood; |
| 1537 | tcon->need_reconnect = false; | 1537 | tcon->need_reconnect = false; |
| 1538 | tcon->tid = rsp->hdr.sync_hdr.TreeId; | 1538 | tcon->tid = rsp->sync_hdr.TreeId; |
| 1539 | strlcpy(tcon->treeName, tree, sizeof(tcon->treeName)); | 1539 | strlcpy(tcon->treeName, tree, sizeof(tcon->treeName)); |
| 1540 | 1540 | ||
| 1541 | if ((rsp->Capabilities & SMB2_SHARE_CAP_DFS) && | 1541 | if ((rsp->Capabilities & SMB2_SHARE_CAP_DFS) && |
| @@ -1555,7 +1555,7 @@ tcon_exit: | |||
| 1555 | return rc; | 1555 | return rc; |
| 1556 | 1556 | ||
| 1557 | tcon_error_exit: | 1557 | tcon_error_exit: |
| 1558 | if (rsp && rsp->hdr.sync_hdr.Status == STATUS_BAD_NETWORK_NAME) { | 1558 | if (rsp && rsp->sync_hdr.Status == STATUS_BAD_NETWORK_NAME) { |
| 1559 | cifs_dbg(VFS, "BAD_NETWORK_NAME: %s\n", tree); | 1559 | cifs_dbg(VFS, "BAD_NETWORK_NAME: %s\n", tree); |
| 1560 | } | 1560 | } |
| 1561 | goto tcon_exit; | 1561 | goto tcon_exit; |
| @@ -2526,7 +2526,7 @@ smb2_echo_callback(struct mid_q_entry *mid) | |||
| 2526 | unsigned int credits_received = 1; | 2526 | unsigned int credits_received = 1; |
| 2527 | 2527 | ||
| 2528 | if (mid->mid_state == MID_RESPONSE_RECEIVED) | 2528 | if (mid->mid_state == MID_RESPONSE_RECEIVED) |
| 2529 | credits_received = le16_to_cpu(rsp->hdr.sync_hdr.CreditRequest); | 2529 | credits_received = le16_to_cpu(rsp->sync_hdr.CreditRequest); |
| 2530 | 2530 | ||
| 2531 | DeleteMidQEntry(mid); | 2531 | DeleteMidQEntry(mid); |
| 2532 | add_credits(server, credits_received, CIFS_ECHO_OP); | 2532 | add_credits(server, credits_received, CIFS_ECHO_OP); |
| @@ -3006,7 +3006,7 @@ smb2_writev_callback(struct mid_q_entry *mid) | |||
| 3006 | 3006 | ||
| 3007 | switch (mid->mid_state) { | 3007 | switch (mid->mid_state) { |
| 3008 | case MID_RESPONSE_RECEIVED: | 3008 | case MID_RESPONSE_RECEIVED: |
| 3009 | credits_received = le16_to_cpu(rsp->hdr.sync_hdr.CreditRequest); | 3009 | credits_received = le16_to_cpu(rsp->sync_hdr.CreditRequest); |
| 3010 | wdata->result = smb2_check_receive(mid, tcon->ses->server, 0); | 3010 | wdata->result = smb2_check_receive(mid, tcon->ses->server, 0); |
| 3011 | if (wdata->result != 0) | 3011 | if (wdata->result != 0) |
| 3012 | break; | 3012 | break; |
| @@ -3398,7 +3398,7 @@ SMB2_query_directory(const unsigned int xid, struct cifs_tcon *tcon, | |||
| 3398 | 3398 | ||
| 3399 | if (rc) { | 3399 | if (rc) { |
| 3400 | if (rc == -ENODATA && | 3400 | if (rc == -ENODATA && |
| 3401 | rsp->hdr.sync_hdr.Status == STATUS_NO_MORE_FILES) { | 3401 | rsp->sync_hdr.Status == STATUS_NO_MORE_FILES) { |
| 3402 | srch_inf->endOfSearch = true; | 3402 | srch_inf->endOfSearch = true; |
| 3403 | rc = 0; | 3403 | rc = 0; |
| 3404 | } | 3404 | } |
| @@ -3781,7 +3781,7 @@ SMB2_QFS_info(const unsigned int xid, struct cifs_tcon *tcon, | |||
| 3781 | rsp = (struct smb2_query_info_rsp *)rsp_iov.iov_base; | 3781 | rsp = (struct smb2_query_info_rsp *)rsp_iov.iov_base; |
| 3782 | 3782 | ||
| 3783 | info = (struct smb2_fs_full_size_info *)(server->vals->header_preamble_size + | 3783 | info = (struct smb2_fs_full_size_info *)(server->vals->header_preamble_size + |
| 3784 | le16_to_cpu(rsp->OutputBufferOffset) + (char *)&rsp->hdr); | 3784 | le16_to_cpu(rsp->OutputBufferOffset) + (char *)rsp); |
| 3785 | rc = validate_iov(server, | 3785 | rc = validate_iov(server, |
| 3786 | le16_to_cpu(rsp->OutputBufferOffset), | 3786 | le16_to_cpu(rsp->OutputBufferOffset), |
| 3787 | le32_to_cpu(rsp->OutputBufferLength), &rsp_iov, | 3787 | le32_to_cpu(rsp->OutputBufferLength), &rsp_iov, |
| @@ -3846,14 +3846,14 @@ SMB2_QFS_attr(const unsigned int xid, struct cifs_tcon *tcon, | |||
| 3846 | 3846 | ||
| 3847 | if (level == FS_ATTRIBUTE_INFORMATION) | 3847 | if (level == FS_ATTRIBUTE_INFORMATION) |
| 3848 | memcpy(&tcon->fsAttrInfo, server->vals->header_preamble_size + offset | 3848 | memcpy(&tcon->fsAttrInfo, server->vals->header_preamble_size + offset |
| 3849 | + (char *)&rsp->hdr, min_t(unsigned int, | 3849 | + (char *)rsp, min_t(unsigned int, |
| 3850 | rsp_len, max_len)); | 3850 | rsp_len, max_len)); |
| 3851 | else if (level == FS_DEVICE_INFORMATION) | 3851 | else if (level == FS_DEVICE_INFORMATION) |
| 3852 | memcpy(&tcon->fsDevInfo, server->vals->header_preamble_size + offset | 3852 | memcpy(&tcon->fsDevInfo, server->vals->header_preamble_size + offset |
| 3853 | + (char *)&rsp->hdr, sizeof(FILE_SYSTEM_DEVICE_INFO)); | 3853 | + (char *)rsp, sizeof(FILE_SYSTEM_DEVICE_INFO)); |
| 3854 | else if (level == FS_SECTOR_SIZE_INFORMATION) { | 3854 | else if (level == FS_SECTOR_SIZE_INFORMATION) { |
| 3855 | struct smb3_fs_ss_info *ss_info = (struct smb3_fs_ss_info *) | 3855 | struct smb3_fs_ss_info *ss_info = (struct smb3_fs_ss_info *) |
| 3856 | (server->vals->header_preamble_size + offset + (char *)&rsp->hdr); | 3856 | (server->vals->header_preamble_size + offset + (char *)rsp); |
| 3857 | tcon->ss_flags = le32_to_cpu(ss_info->Flags); | 3857 | tcon->ss_flags = le32_to_cpu(ss_info->Flags); |
| 3858 | tcon->perf_sector_size = | 3858 | tcon->perf_sector_size = |
| 3859 | le32_to_cpu(ss_info->PhysicalBytesPerSectorForPerf); | 3859 | le32_to_cpu(ss_info->PhysicalBytesPerSectorForPerf); |
diff --git a/fs/cifs/smb2pdu.h b/fs/cifs/smb2pdu.h index 3448a5d33b67..a345560001ce 100644 --- a/fs/cifs/smb2pdu.h +++ b/fs/cifs/smb2pdu.h | |||
| @@ -122,15 +122,6 @@ struct smb2_sync_pdu { | |||
| 122 | __le16 StructureSize2; /* size of wct area (varies, request specific) */ | 122 | __le16 StructureSize2; /* size of wct area (varies, request specific) */ |
| 123 | } __packed; | 123 | } __packed; |
| 124 | 124 | ||
| 125 | struct smb2_hdr { | ||
| 126 | struct smb2_sync_hdr sync_hdr; | ||
| 127 | } __packed; | ||
| 128 | |||
| 129 | struct smb2_pdu { | ||
| 130 | struct smb2_hdr hdr; | ||
| 131 | __le16 StructureSize2; /* size of wct area (varies, request specific) */ | ||
| 132 | } __packed; | ||
| 133 | |||
| 134 | #define SMB3_AES128CMM_NONCE 11 | 125 | #define SMB3_AES128CMM_NONCE 11 |
| 135 | #define SMB3_AES128GCM_NONCE 12 | 126 | #define SMB3_AES128GCM_NONCE 12 |
| 136 | 127 | ||
| @@ -165,7 +156,7 @@ struct smb2_transform_hdr { | |||
| 165 | #define SMB2_ERROR_STRUCTURE_SIZE2 cpu_to_le16(9) | 156 | #define SMB2_ERROR_STRUCTURE_SIZE2 cpu_to_le16(9) |
| 166 | 157 | ||
| 167 | struct smb2_err_rsp { | 158 | struct smb2_err_rsp { |
| 168 | struct smb2_hdr hdr; | 159 | struct smb2_sync_hdr sync_hdr; |
| 169 | __le16 StructureSize; | 160 | __le16 StructureSize; |
| 170 | __le16 Reserved; /* MBZ */ | 161 | __le16 Reserved; /* MBZ */ |
| 171 | __le32 ByteCount; /* even if zero, at least one byte follows */ | 162 | __le32 ByteCount; /* even if zero, at least one byte follows */ |
| @@ -303,7 +294,7 @@ struct smb2_posix_neg_context { | |||
| 303 | } __packed; | 294 | } __packed; |
| 304 | 295 | ||
| 305 | struct smb2_negotiate_rsp { | 296 | struct smb2_negotiate_rsp { |
| 306 | struct smb2_hdr hdr; | 297 | struct smb2_sync_hdr sync_hdr; |
| 307 | __le16 StructureSize; /* Must be 65 */ | 298 | __le16 StructureSize; /* Must be 65 */ |
| 308 | __le16 SecurityMode; | 299 | __le16 SecurityMode; |
| 309 | __le16 DialectRevision; | 300 | __le16 DialectRevision; |
| @@ -343,7 +334,7 @@ struct smb2_sess_setup_req { | |||
| 343 | #define SMB2_SESSION_FLAG_IS_NULL 0x0002 | 334 | #define SMB2_SESSION_FLAG_IS_NULL 0x0002 |
| 344 | #define SMB2_SESSION_FLAG_ENCRYPT_DATA 0x0004 | 335 | #define SMB2_SESSION_FLAG_ENCRYPT_DATA 0x0004 |
| 345 | struct smb2_sess_setup_rsp { | 336 | struct smb2_sess_setup_rsp { |
| 346 | struct smb2_hdr hdr; | 337 | struct smb2_sync_hdr sync_hdr; |
| 347 | __le16 StructureSize; /* Must be 9 */ | 338 | __le16 StructureSize; /* Must be 9 */ |
| 348 | __le16 SessionFlags; | 339 | __le16 SessionFlags; |
| 349 | __le16 SecurityBufferOffset; | 340 | __le16 SecurityBufferOffset; |
| @@ -358,7 +349,7 @@ struct smb2_logoff_req { | |||
| 358 | } __packed; | 349 | } __packed; |
| 359 | 350 | ||
| 360 | struct smb2_logoff_rsp { | 351 | struct smb2_logoff_rsp { |
| 361 | struct smb2_hdr hdr; | 352 | struct smb2_sync_hdr sync_hdr; |
| 362 | __le16 StructureSize; /* Must be 4 */ | 353 | __le16 StructureSize; /* Must be 4 */ |
| 363 | __le16 Reserved; | 354 | __le16 Reserved; |
| 364 | } __packed; | 355 | } __packed; |
| @@ -454,7 +445,7 @@ struct smb2_tree_connect_req_extension { | |||
| 454 | } __packed; | 445 | } __packed; |
| 455 | 446 | ||
| 456 | struct smb2_tree_connect_rsp { | 447 | struct smb2_tree_connect_rsp { |
| 457 | struct smb2_hdr hdr; | 448 | struct smb2_sync_hdr sync_hdr; |
| 458 | __le16 StructureSize; /* Must be 16 */ | 449 | __le16 StructureSize; /* Must be 16 */ |
| 459 | __u8 ShareType; /* see below */ | 450 | __u8 ShareType; /* see below */ |
| 460 | __u8 Reserved; | 451 | __u8 Reserved; |
| @@ -505,7 +496,7 @@ struct smb2_tree_disconnect_req { | |||
| 505 | } __packed; | 496 | } __packed; |
| 506 | 497 | ||
| 507 | struct smb2_tree_disconnect_rsp { | 498 | struct smb2_tree_disconnect_rsp { |
| 508 | struct smb2_hdr hdr; | 499 | struct smb2_sync_hdr sync_hdr; |
| 509 | __le16 StructureSize; /* Must be 4 */ | 500 | __le16 StructureSize; /* Must be 4 */ |
| 510 | __le16 Reserved; | 501 | __le16 Reserved; |
| 511 | } __packed; | 502 | } __packed; |
| @@ -642,7 +633,7 @@ struct smb2_create_req { | |||
| 642 | } __packed; | 633 | } __packed; |
| 643 | 634 | ||
| 644 | struct smb2_create_rsp { | 635 | struct smb2_create_rsp { |
| 645 | struct smb2_hdr hdr; | 636 | struct smb2_sync_hdr sync_hdr; |
| 646 | __le16 StructureSize; /* Must be 89 */ | 637 | __le16 StructureSize; /* Must be 89 */ |
| 647 | __u8 OplockLevel; | 638 | __u8 OplockLevel; |
| 648 | __u8 Reserved; | 639 | __u8 Reserved; |
| @@ -905,7 +896,7 @@ struct smb2_ioctl_req { | |||
| 905 | } __packed; | 896 | } __packed; |
| 906 | 897 | ||
| 907 | struct smb2_ioctl_rsp { | 898 | struct smb2_ioctl_rsp { |
| 908 | struct smb2_hdr hdr; | 899 | struct smb2_sync_hdr sync_hdr; |
| 909 | __le16 StructureSize; /* Must be 57 */ | 900 | __le16 StructureSize; /* Must be 57 */ |
| 910 | __u16 Reserved; | 901 | __u16 Reserved; |
| 911 | __le32 CtlCode; | 902 | __le32 CtlCode; |
| @@ -932,7 +923,7 @@ struct smb2_close_req { | |||
| 932 | } __packed; | 923 | } __packed; |
| 933 | 924 | ||
| 934 | struct smb2_close_rsp { | 925 | struct smb2_close_rsp { |
| 935 | struct smb2_hdr hdr; | 926 | struct smb2_sync_hdr sync_hdr; |
| 936 | __le16 StructureSize; /* 60 */ | 927 | __le16 StructureSize; /* 60 */ |
| 937 | __le16 Flags; | 928 | __le16 Flags; |
| 938 | __le32 Reserved; | 929 | __le32 Reserved; |
| @@ -955,7 +946,7 @@ struct smb2_flush_req { | |||
| 955 | } __packed; | 946 | } __packed; |
| 956 | 947 | ||
| 957 | struct smb2_flush_rsp { | 948 | struct smb2_flush_rsp { |
| 958 | struct smb2_hdr hdr; | 949 | struct smb2_sync_hdr sync_hdr; |
| 959 | __le16 StructureSize; | 950 | __le16 StructureSize; |
| 960 | __le16 Reserved; | 951 | __le16 Reserved; |
| 961 | } __packed; | 952 | } __packed; |
| @@ -987,7 +978,7 @@ struct smb2_read_plain_req { | |||
| 987 | } __packed; | 978 | } __packed; |
| 988 | 979 | ||
| 989 | struct smb2_read_rsp { | 980 | struct smb2_read_rsp { |
| 990 | struct smb2_hdr hdr; | 981 | struct smb2_sync_hdr sync_hdr; |
| 991 | __le16 StructureSize; /* Must be 17 */ | 982 | __le16 StructureSize; /* Must be 17 */ |
| 992 | __u8 DataOffset; | 983 | __u8 DataOffset; |
| 993 | __u8 Reserved; | 984 | __u8 Reserved; |
| @@ -1018,7 +1009,7 @@ struct smb2_write_req { | |||
| 1018 | } __packed; | 1009 | } __packed; |
| 1019 | 1010 | ||
| 1020 | struct smb2_write_rsp { | 1011 | struct smb2_write_rsp { |
| 1021 | struct smb2_hdr hdr; | 1012 | struct smb2_sync_hdr sync_hdr; |
| 1022 | __le16 StructureSize; /* Must be 17 */ | 1013 | __le16 StructureSize; /* Must be 17 */ |
| 1023 | __u8 DataOffset; | 1014 | __u8 DataOffset; |
| 1024 | __u8 Reserved; | 1015 | __u8 Reserved; |
| @@ -1052,7 +1043,7 @@ struct smb2_lock_req { | |||
| 1052 | } __packed; | 1043 | } __packed; |
| 1053 | 1044 | ||
| 1054 | struct smb2_lock_rsp { | 1045 | struct smb2_lock_rsp { |
| 1055 | struct smb2_hdr hdr; | 1046 | struct smb2_sync_hdr sync_hdr; |
| 1056 | __le16 StructureSize; /* Must be 4 */ | 1047 | __le16 StructureSize; /* Must be 4 */ |
| 1057 | __le16 Reserved; | 1048 | __le16 Reserved; |
| 1058 | } __packed; | 1049 | } __packed; |
| @@ -1064,7 +1055,7 @@ struct smb2_echo_req { | |||
| 1064 | } __packed; | 1055 | } __packed; |
| 1065 | 1056 | ||
| 1066 | struct smb2_echo_rsp { | 1057 | struct smb2_echo_rsp { |
| 1067 | struct smb2_hdr hdr; | 1058 | struct smb2_sync_hdr sync_hdr; |
| 1068 | __le16 StructureSize; /* Must be 4 */ | 1059 | __le16 StructureSize; /* Must be 4 */ |
| 1069 | __u16 Reserved; | 1060 | __u16 Reserved; |
| 1070 | } __packed; | 1061 | } __packed; |
| @@ -1090,7 +1081,7 @@ struct smb2_query_directory_req { | |||
| 1090 | } __packed; | 1081 | } __packed; |
| 1091 | 1082 | ||
| 1092 | struct smb2_query_directory_rsp { | 1083 | struct smb2_query_directory_rsp { |
| 1093 | struct smb2_hdr hdr; | 1084 | struct smb2_sync_hdr sync_hdr; |
| 1094 | __le16 StructureSize; /* Must be 9 */ | 1085 | __le16 StructureSize; /* Must be 9 */ |
| 1095 | __le16 OutputBufferOffset; | 1086 | __le16 OutputBufferOffset; |
| 1096 | __le32 OutputBufferLength; | 1087 | __le32 OutputBufferLength; |
| @@ -1139,7 +1130,7 @@ struct smb2_query_info_req { | |||
| 1139 | } __packed; | 1130 | } __packed; |
| 1140 | 1131 | ||
| 1141 | struct smb2_query_info_rsp { | 1132 | struct smb2_query_info_rsp { |
| 1142 | struct smb2_hdr hdr; | 1133 | struct smb2_sync_hdr sync_hdr; |
| 1143 | __le16 StructureSize; /* Must be 9 */ | 1134 | __le16 StructureSize; /* Must be 9 */ |
| 1144 | __le16 OutputBufferOffset; | 1135 | __le16 OutputBufferOffset; |
| 1145 | __le32 OutputBufferLength; | 1136 | __le32 OutputBufferLength; |
| @@ -1161,7 +1152,7 @@ struct smb2_set_info_req { | |||
| 1161 | } __packed; | 1152 | } __packed; |
| 1162 | 1153 | ||
| 1163 | struct smb2_set_info_rsp { | 1154 | struct smb2_set_info_rsp { |
| 1164 | struct smb2_hdr hdr; | 1155 | struct smb2_sync_hdr sync_hdr; |
| 1165 | __le16 StructureSize; /* Must be 2 */ | 1156 | __le16 StructureSize; /* Must be 2 */ |
| 1166 | } __packed; | 1157 | } __packed; |
| 1167 | 1158 | ||
| @@ -1178,7 +1169,7 @@ struct smb2_oplock_break { | |||
| 1178 | #define SMB2_NOTIFY_BREAK_LEASE_FLAG_ACK_REQUIRED cpu_to_le32(0x01) | 1169 | #define SMB2_NOTIFY_BREAK_LEASE_FLAG_ACK_REQUIRED cpu_to_le32(0x01) |
| 1179 | 1170 | ||
| 1180 | struct smb2_lease_break { | 1171 | struct smb2_lease_break { |
| 1181 | struct smb2_hdr hdr; | 1172 | struct smb2_sync_hdr sync_hdr; |
| 1182 | __le16 StructureSize; /* Must be 44 */ | 1173 | __le16 StructureSize; /* Must be 44 */ |
| 1183 | __le16 Reserved; | 1174 | __le16 Reserved; |
| 1184 | __le32 Flags; | 1175 | __le32 Flags; |
