cifs: remove struct smb2_hdr
authorRonnie Sahlberg <lsahlber@redhat.com>
Fri, 1 Jun 2018 00:53:06 +0000 (10:53 +1000)
committerSteve French <stfrench@microsoft.com>
Fri, 1 Jun 2018 14:14:30 +0000 (09:14 -0500)
struct smb2_hdr is now just a wrapper for smb2_sync_hdr.
We can thus get rid of smb2_hdr completely and access the sync header directly.

Signed-off-by: Ronnie Sahlberg <lsahlber@redhat.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/cifs/misc.c
fs/cifs/smb2glob.h
fs/cifs/smb2maperror.c
fs/cifs/smb2misc.c
fs/cifs/smb2ops.c
fs/cifs/smb2pdu.c
fs/cifs/smb2pdu.h

index 96849b530e3289629d5e6d8f611bec50c87c40c6..aba3fc3058da9642841b8776d9330a9686668c58 100644 (file)
@@ -148,7 +148,7 @@ cifs_buf_get(void)
         * SMB2 header is bigger than CIFS one - no problems to clean some
         * more bytes for CIFS.
         */
-       size_t buf_size = sizeof(struct smb2_hdr);
+       size_t buf_size = sizeof(struct smb2_sync_hdr);
 
        /*
         * We could use negotiated size instead of max_msgsize -
index 401a5d8566367e2bb5d3d65df5679708e515b2f6..0ffa180943357c5514b5ae025f61e4b19f574f38 100644 (file)
@@ -61,9 +61,4 @@
 /* Maximum buffer size value we can send with 1 credit */
 #define SMB2_MAX_BUFFER_SIZE 65536
 
-static inline struct smb2_sync_hdr *get_sync_hdr(void *buf)
-{
-       return &(((struct smb2_hdr *)buf)->sync_hdr);
-}
-
 #endif /* _SMB2_GLOB_H */
index 86f1acaa759b36b4c5cbb0b2465eba1d8eac2360..20a2d304c6031fecbd3a87ef01a833104537ab8c 100644 (file)
@@ -2451,7 +2451,7 @@ smb2_print_status(__le32 status)
 int
 map_smb2_to_linux_error(char *buf, bool log_err)
 {
-       struct smb2_sync_hdr *shdr = get_sync_hdr(buf);
+       struct smb2_sync_hdr *shdr = (struct smb2_sync_hdr *)buf;
        unsigned int i;
        int rc = -EIO;
        __le32 smb2err = shdr->Status;
index 2f1db5af7a6572e5725366620c60ccf7e3d2054a..d587a090292ad551de07b3dc9bce4b793dc719c0 100644 (file)
@@ -716,7 +716,7 @@ smb2_cancelled_close_fid(struct work_struct *work)
 int
 smb2_handle_cancelled_mid(char *buffer, struct TCP_Server_Info *server)
 {
-       struct smb2_sync_hdr *sync_hdr = get_sync_hdr(buffer);
+       struct smb2_sync_hdr *sync_hdr = (struct smb2_sync_hdr *)buffer;
        struct smb2_create_rsp *rsp = (struct smb2_create_rsp *)buffer;
        struct cifs_tcon *tcon;
        struct close_cancelled_open *cancelled;
index f2bce73e23a02f3ba50442e44ff445f62c35e4be..b0f3bf9b32f9b9857e2b34370963c6cb0ebc91a5 100644 (file)
@@ -123,7 +123,7 @@ smb2_get_credits_field(struct TCP_Server_Info *server, const int optype)
 static unsigned int
 smb2_get_credits(struct mid_q_entry *mid)
 {
-       struct smb2_sync_hdr *shdr = get_sync_hdr(mid->resp_buf);
+       struct smb2_sync_hdr *shdr = (struct smb2_sync_hdr *)mid->resp_buf;
 
        return le16_to_cpu(shdr->CreditRequest);
 }
@@ -190,7 +190,7 @@ static struct mid_q_entry *
 smb2_find_mid(struct TCP_Server_Info *server, char *buf)
 {
        struct mid_q_entry *mid;
-       struct smb2_sync_hdr *shdr = get_sync_hdr(buf);
+       struct smb2_sync_hdr *shdr = (struct smb2_sync_hdr *)buf;
        __u64 wire_mid = le64_to_cpu(shdr->MessageId);
 
        if (shdr->ProtocolId == SMB2_TRANSFORM_PROTO_NUM) {
@@ -215,7 +215,7 @@ static void
 smb2_dump_detail(void *buf, struct TCP_Server_Info *server)
 {
 #ifdef CONFIG_CIFS_DEBUG2
-       struct smb2_sync_hdr *shdr = get_sync_hdr(buf);
+       struct smb2_sync_hdr *shdr = (struct smb2_sync_hdr *)buf;
 
        cifs_dbg(VFS, "Cmd: %d Err: 0x%x Flags: 0x%x Mid: %llu Pid: %d\n",
                 shdr->Command, shdr->Status, shdr->Flags, shdr->MessageId,
@@ -1303,7 +1303,7 @@ smb2_close_dir(const unsigned int xid, struct cifs_tcon *tcon,
 static bool
 smb2_is_status_pending(char *buf, struct TCP_Server_Info *server, int length)
 {
-       struct smb2_sync_hdr *shdr = get_sync_hdr(buf);
+       struct smb2_sync_hdr *shdr = (struct smb2_sync_hdr *)buf;
 
        if (shdr->Status != STATUS_PENDING)
                return false;
@@ -1321,7 +1321,7 @@ smb2_is_status_pending(char *buf, struct TCP_Server_Info *server, int length)
 static bool
 smb2_is_session_expired(char *buf)
 {
-       struct smb2_sync_hdr *shdr = get_sync_hdr(buf);
+       struct smb2_sync_hdr *shdr = (struct smb2_sync_hdr *)buf;
 
        if (shdr->Status != STATUS_NETWORK_SESSION_EXPIRED &&
            shdr->Status != STATUS_USER_SESSION_DELETED)
@@ -2534,7 +2534,7 @@ handle_read_data(struct TCP_Server_Info *server, struct mid_q_entry *mid,
        unsigned int cur_page_idx;
        unsigned int pad_len;
        struct cifs_readdata *rdata = mid->callback_data;
-       struct smb2_sync_hdr *shdr = get_sync_hdr(buf);
+       struct smb2_sync_hdr *shdr = (struct smb2_sync_hdr *)buf;
        struct bio_vec *bvec = NULL;
        struct iov_iter iter;
        struct kvec iov;
index 21b69badcd31c5972bd69730cedf45cd6496a304..134bb19b22aa09595e22c5a6e99f696666b161b3 100644 (file)
@@ -767,7 +767,7 @@ SMB2_negotiate(const unsigned int xid, struct cifs_ses *ses)
        server->capabilities |= SMB2_NT_FIND | SMB2_LARGE_FILES;
 
        security_blob = smb2_get_data_area_len(&blob_offset, &blob_length,
-                                              &rsp->hdr.sync_hdr);
+                                              (struct smb2_sync_hdr *)rsp);
        /*
         * See MS-SMB2 section 2.2.4: if no blob, client picks default which
         * for us will be
@@ -1131,7 +1131,7 @@ SMB2_auth_kerberos(struct SMB2_sess_data *sess_data)
                goto out_put_spnego_key;
 
        rsp = (struct smb2_sess_setup_rsp *)sess_data->iov[0].iov_base;
-       ses->Suid = rsp->hdr.sync_hdr.SessionId;
+       ses->Suid = rsp->sync_hdr.SessionId;
 
        ses->session_flags = le16_to_cpu(rsp->SessionFlags);
 
@@ -1207,7 +1207,7 @@ SMB2_sess_auth_rawntlmssp_negotiate(struct SMB2_sess_data *sess_data)
 
        /* If true, rc here is expected and not an error */
        if (sess_data->buf0_type != CIFS_NO_BUFFER &&
-               rsp->hdr.sync_hdr.Status == STATUS_MORE_PROCESSING_REQUIRED)
+               rsp->sync_hdr.Status == STATUS_MORE_PROCESSING_REQUIRED)
                rc = 0;
 
        if (rc)
@@ -1228,7 +1228,7 @@ SMB2_sess_auth_rawntlmssp_negotiate(struct SMB2_sess_data *sess_data)
        cifs_dbg(FYI, "rawntlmssp session setup challenge phase\n");
 
 
-       ses->Suid = rsp->hdr.sync_hdr.SessionId;
+       ses->Suid = rsp->sync_hdr.SessionId;
        ses->session_flags = le16_to_cpu(rsp->SessionFlags);
 
 out:
@@ -1286,7 +1286,7 @@ SMB2_sess_auth_rawntlmssp_authenticate(struct SMB2_sess_data *sess_data)
 
        rsp = (struct smb2_sess_setup_rsp *)sess_data->iov[0].iov_base;
 
-       ses->Suid = rsp->hdr.sync_hdr.SessionId;
+       ses->Suid = rsp->sync_hdr.SessionId;
        ses->session_flags = le16_to_cpu(rsp->SessionFlags);
 
        rc = SMB2_sess_establish_session(sess_data);
@@ -1535,7 +1535,7 @@ SMB2_tcon(const unsigned int xid, struct cifs_ses *ses, const char *tree,
        tcon->maximal_access = le32_to_cpu(rsp->MaximalAccess);
        tcon->tidStatus = CifsGood;
        tcon->need_reconnect = false;
-       tcon->tid = rsp->hdr.sync_hdr.TreeId;
+       tcon->tid = rsp->sync_hdr.TreeId;
        strlcpy(tcon->treeName, tree, sizeof(tcon->treeName));
 
        if ((rsp->Capabilities & SMB2_SHARE_CAP_DFS) &&
@@ -1555,7 +1555,7 @@ tcon_exit:
        return rc;
 
 tcon_error_exit:
-       if (rsp && rsp->hdr.sync_hdr.Status == STATUS_BAD_NETWORK_NAME) {
+       if (rsp && rsp->sync_hdr.Status == STATUS_BAD_NETWORK_NAME) {
                cifs_dbg(VFS, "BAD_NETWORK_NAME: %s\n", tree);
        }
        goto tcon_exit;
@@ -2526,7 +2526,7 @@ smb2_echo_callback(struct mid_q_entry *mid)
        unsigned int credits_received = 1;
 
        if (mid->mid_state == MID_RESPONSE_RECEIVED)
-               credits_received = le16_to_cpu(rsp->hdr.sync_hdr.CreditRequest);
+               credits_received = le16_to_cpu(rsp->sync_hdr.CreditRequest);
 
        DeleteMidQEntry(mid);
        add_credits(server, credits_received, CIFS_ECHO_OP);
@@ -3006,7 +3006,7 @@ smb2_writev_callback(struct mid_q_entry *mid)
 
        switch (mid->mid_state) {
        case MID_RESPONSE_RECEIVED:
-               credits_received = le16_to_cpu(rsp->hdr.sync_hdr.CreditRequest);
+               credits_received = le16_to_cpu(rsp->sync_hdr.CreditRequest);
                wdata->result = smb2_check_receive(mid, tcon->ses->server, 0);
                if (wdata->result != 0)
                        break;
@@ -3398,7 +3398,7 @@ SMB2_query_directory(const unsigned int xid, struct cifs_tcon *tcon,
 
        if (rc) {
                if (rc == -ENODATA &&
-                   rsp->hdr.sync_hdr.Status == STATUS_NO_MORE_FILES) {
+                   rsp->sync_hdr.Status == STATUS_NO_MORE_FILES) {
                        srch_inf->endOfSearch = true;
                        rc = 0;
                }
@@ -3781,7 +3781,7 @@ SMB2_QFS_info(const unsigned int xid, struct cifs_tcon *tcon,
        rsp = (struct smb2_query_info_rsp *)rsp_iov.iov_base;
 
        info = (struct smb2_fs_full_size_info *)(server->vals->header_preamble_size +
-               le16_to_cpu(rsp->OutputBufferOffset) + (char *)&rsp->hdr);
+               le16_to_cpu(rsp->OutputBufferOffset) + (char *)rsp);
        rc = validate_iov(server,
                          le16_to_cpu(rsp->OutputBufferOffset),
                          le32_to_cpu(rsp->OutputBufferLength), &rsp_iov,
@@ -3846,14 +3846,14 @@ SMB2_QFS_attr(const unsigned int xid, struct cifs_tcon *tcon,
 
        if (level == FS_ATTRIBUTE_INFORMATION)
                memcpy(&tcon->fsAttrInfo, server->vals->header_preamble_size + offset
-                       + (char *)&rsp->hdr, min_t(unsigned int,
+                       + (char *)rsp, min_t(unsigned int,
                        rsp_len, max_len));
        else if (level == FS_DEVICE_INFORMATION)
                memcpy(&tcon->fsDevInfo, server->vals->header_preamble_size + offset
-                       + (char *)&rsp->hdr, sizeof(FILE_SYSTEM_DEVICE_INFO));
+                       + (char *)rsp, sizeof(FILE_SYSTEM_DEVICE_INFO));
        else if (level == FS_SECTOR_SIZE_INFORMATION) {
                struct smb3_fs_ss_info *ss_info = (struct smb3_fs_ss_info *)
-                       (server->vals->header_preamble_size + offset + (char *)&rsp->hdr);
+                       (server->vals->header_preamble_size + offset + (char *)rsp);
                tcon->ss_flags = le32_to_cpu(ss_info->Flags);
                tcon->perf_sector_size =
                        le32_to_cpu(ss_info->PhysicalBytesPerSectorForPerf);
index 3448a5d33b671df4ee16b9ba0319e83d568d5e0a..a345560001ced354c550d6ab2f507a18d72ff9d2 100644 (file)
@@ -122,15 +122,6 @@ struct smb2_sync_pdu {
        __le16 StructureSize2; /* size of wct area (varies, request specific) */
 } __packed;
 
-struct smb2_hdr {
-       struct smb2_sync_hdr sync_hdr;
-} __packed;
-
-struct smb2_pdu {
-       struct smb2_hdr hdr;
-       __le16 StructureSize2; /* size of wct area (varies, request specific) */
-} __packed;
-
 #define SMB3_AES128CMM_NONCE 11
 #define SMB3_AES128GCM_NONCE 12
 
@@ -165,7 +156,7 @@ struct smb2_transform_hdr {
 #define SMB2_ERROR_STRUCTURE_SIZE2 cpu_to_le16(9)
 
 struct smb2_err_rsp {
-       struct smb2_hdr hdr;
+       struct smb2_sync_hdr sync_hdr;
        __le16 StructureSize;
        __le16 Reserved; /* MBZ */
        __le32 ByteCount;  /* even if zero, at least one byte follows */
@@ -303,7 +294,7 @@ struct smb2_posix_neg_context {
 } __packed;
 
 struct smb2_negotiate_rsp {
-       struct smb2_hdr hdr;
+       struct smb2_sync_hdr sync_hdr;
        __le16 StructureSize;   /* Must be 65 */
        __le16 SecurityMode;
        __le16 DialectRevision;
@@ -343,7 +334,7 @@ struct smb2_sess_setup_req {
 #define SMB2_SESSION_FLAG_IS_NULL      0x0002
 #define SMB2_SESSION_FLAG_ENCRYPT_DATA 0x0004
 struct smb2_sess_setup_rsp {
-       struct smb2_hdr hdr;
+       struct smb2_sync_hdr sync_hdr;
        __le16 StructureSize; /* Must be 9 */
        __le16 SessionFlags;
        __le16 SecurityBufferOffset;
@@ -358,7 +349,7 @@ struct smb2_logoff_req {
 } __packed;
 
 struct smb2_logoff_rsp {
-       struct smb2_hdr hdr;
+       struct smb2_sync_hdr sync_hdr;
        __le16 StructureSize;   /* Must be 4 */
        __le16 Reserved;
 } __packed;
@@ -454,7 +445,7 @@ struct smb2_tree_connect_req_extension {
 } __packed;
 
 struct smb2_tree_connect_rsp {
-       struct smb2_hdr hdr;
+       struct smb2_sync_hdr sync_hdr;
        __le16 StructureSize;   /* Must be 16 */
        __u8   ShareType;  /* see below */
        __u8   Reserved;
@@ -505,7 +496,7 @@ struct smb2_tree_disconnect_req {
 } __packed;
 
 struct smb2_tree_disconnect_rsp {
-       struct smb2_hdr hdr;
+       struct smb2_sync_hdr sync_hdr;
        __le16 StructureSize;   /* Must be 4 */
        __le16 Reserved;
 } __packed;
@@ -642,7 +633,7 @@ struct smb2_create_req {
 } __packed;
 
 struct smb2_create_rsp {
-       struct smb2_hdr hdr;
+       struct smb2_sync_hdr sync_hdr;
        __le16 StructureSize;   /* Must be 89 */
        __u8   OplockLevel;
        __u8   Reserved;
@@ -905,7 +896,7 @@ struct smb2_ioctl_req {
 } __packed;
 
 struct smb2_ioctl_rsp {
-       struct smb2_hdr hdr;
+       struct smb2_sync_hdr sync_hdr;
        __le16 StructureSize;   /* Must be 57 */
        __u16 Reserved;
        __le32 CtlCode;
@@ -932,7 +923,7 @@ struct smb2_close_req {
 } __packed;
 
 struct smb2_close_rsp {
-       struct smb2_hdr hdr;
+       struct smb2_sync_hdr sync_hdr;
        __le16 StructureSize; /* 60 */
        __le16 Flags;
        __le32 Reserved;
@@ -955,7 +946,7 @@ struct smb2_flush_req {
 } __packed;
 
 struct smb2_flush_rsp {
-       struct smb2_hdr hdr;
+       struct smb2_sync_hdr sync_hdr;
        __le16 StructureSize;
        __le16 Reserved;
 } __packed;
@@ -987,7 +978,7 @@ struct smb2_read_plain_req {
 } __packed;
 
 struct smb2_read_rsp {
-       struct smb2_hdr hdr;
+       struct smb2_sync_hdr sync_hdr;
        __le16 StructureSize; /* Must be 17 */
        __u8   DataOffset;
        __u8   Reserved;
@@ -1018,7 +1009,7 @@ struct smb2_write_req {
 } __packed;
 
 struct smb2_write_rsp {
-       struct smb2_hdr hdr;
+       struct smb2_sync_hdr sync_hdr;
        __le16 StructureSize; /* Must be 17 */
        __u8   DataOffset;
        __u8   Reserved;
@@ -1052,7 +1043,7 @@ struct smb2_lock_req {
 } __packed;
 
 struct smb2_lock_rsp {
-       struct smb2_hdr hdr;
+       struct smb2_sync_hdr sync_hdr;
        __le16 StructureSize; /* Must be 4 */
        __le16 Reserved;
 } __packed;
@@ -1064,7 +1055,7 @@ struct smb2_echo_req {
 } __packed;
 
 struct smb2_echo_rsp {
-       struct smb2_hdr hdr;
+       struct smb2_sync_hdr sync_hdr;
        __le16 StructureSize;   /* Must be 4 */
        __u16  Reserved;
 } __packed;
@@ -1090,7 +1081,7 @@ struct smb2_query_directory_req {
 } __packed;
 
 struct smb2_query_directory_rsp {
-       struct smb2_hdr hdr;
+       struct smb2_sync_hdr sync_hdr;
        __le16 StructureSize; /* Must be 9 */
        __le16 OutputBufferOffset;
        __le32 OutputBufferLength;
@@ -1139,7 +1130,7 @@ struct smb2_query_info_req {
 } __packed;
 
 struct smb2_query_info_rsp {
-       struct smb2_hdr hdr;
+       struct smb2_sync_hdr sync_hdr;
        __le16 StructureSize; /* Must be 9 */
        __le16 OutputBufferOffset;
        __le32 OutputBufferLength;
@@ -1161,7 +1152,7 @@ struct smb2_set_info_req {
 } __packed;
 
 struct smb2_set_info_rsp {
-       struct smb2_hdr hdr;
+       struct smb2_sync_hdr sync_hdr;
        __le16 StructureSize; /* Must be 2 */
 } __packed;
 
@@ -1178,7 +1169,7 @@ struct smb2_oplock_break {
 #define SMB2_NOTIFY_BREAK_LEASE_FLAG_ACK_REQUIRED cpu_to_le32(0x01)
 
 struct smb2_lease_break {
-       struct smb2_hdr hdr;
+       struct smb2_sync_hdr sync_hdr;
        __le16 StructureSize; /* Must be 44 */
        __le16 Reserved;
        __le32 Flags;