aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/cifs/misc.c2
-rw-r--r--fs/cifs/smb2glob.h5
-rw-r--r--fs/cifs/smb2maperror.c2
-rw-r--r--fs/cifs/smb2misc.c2
-rw-r--r--fs/cifs/smb2ops.c12
-rw-r--r--fs/cifs/smb2pdu.c28
-rw-r--r--fs/cifs/smb2pdu.h45
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
64static 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)
2451int 2451int
2452map_smb2_to_linux_error(char *buf, bool log_err) 2452map_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)
716int 716int
717smb2_handle_cancelled_mid(char *buffer, struct TCP_Server_Info *server) 717smb2_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)
123static unsigned int 123static unsigned int
124smb2_get_credits(struct mid_q_entry *mid) 124smb2_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 *
190smb2_find_mid(struct TCP_Server_Info *server, char *buf) 190smb2_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
215smb2_dump_detail(void *buf, struct TCP_Server_Info *server) 215smb2_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,
1303static bool 1303static bool
1304smb2_is_status_pending(char *buf, struct TCP_Server_Info *server, int length) 1304smb2_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)
1321static bool 1321static bool
1322smb2_is_session_expired(char *buf) 1322smb2_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
1234out: 1234out:
@@ -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
1557tcon_error_exit: 1557tcon_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
125struct smb2_hdr {
126 struct smb2_sync_hdr sync_hdr;
127} __packed;
128
129struct 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
167struct smb2_err_rsp { 158struct 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
305struct smb2_negotiate_rsp { 296struct 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
345struct smb2_sess_setup_rsp { 336struct 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
360struct smb2_logoff_rsp { 351struct 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
456struct smb2_tree_connect_rsp { 447struct 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
507struct smb2_tree_disconnect_rsp { 498struct 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
644struct smb2_create_rsp { 635struct 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
907struct smb2_ioctl_rsp { 898struct 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
934struct smb2_close_rsp { 925struct 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
957struct smb2_flush_rsp { 948struct 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
989struct smb2_read_rsp { 980struct 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
1020struct smb2_write_rsp { 1011struct 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
1054struct smb2_lock_rsp { 1045struct 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
1066struct smb2_echo_rsp { 1057struct 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
1092struct smb2_query_directory_rsp { 1083struct 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
1141struct smb2_query_info_rsp { 1132struct 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
1163struct smb2_set_info_rsp { 1154struct 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
1180struct smb2_lease_break { 1171struct 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;