SMB3: update structures for new compression protocol definitions
authorSteve French <stfrench@microsoft.com>
Sat, 10 Apr 2021 01:16:41 +0000 (20:16 -0500)
committerSteve French <stfrench@microsoft.com>
Sun, 25 Apr 2021 21:28:23 +0000 (16:28 -0500)
Protocol has been extended for additional compression headers.
See MS-SMB2 section 2.2.42

Signed-off-by: Steve French <stfrench@microsoft.com>
fs/cifs/smb2pdu.h

index d6cd6e6ff14d8bea3d20ee9335867bae651e7624..6442dc1c292b4a5be4f71389d65a37962cabf10e 100644 (file)
@@ -144,7 +144,7 @@ struct smb2_transform_hdr {
 } __packed;
 
 /* See MS-SMB2 2.2.42 */
-struct smb2_compression_transform_hdr {
+struct smb2_compression_transform_hdr_unchained {
        __le32 ProtocolId;      /* 0xFC 'S' 'M' 'B' */
        __le32 OriginalCompressedSegmentSize;
        __le16 CompressionAlgorithm;
@@ -160,10 +160,17 @@ struct compression_payload_header {
        __le16  CompressionAlgorithm;
        __le16  Flags;
        __le32  Length; /* length of compressed playload including field below if present */
-       /* __le32 OriginalPayloadSize; */ /* optional */
+       /* __le32 OriginalPayloadSize; */ /* optional, present when LZNT1, LZ77, LZ77+Huffman */
 } __packed;
 
 /* See MS-SMB2 2.2.42.2 */
+struct smb2_compression_transform_hdr_chained {
+       __le32 ProtocolId;      /* 0xFC 'S' 'M' 'B' */
+       __le32 OriginalCompressedSegmentSize;
+       /* struct compression_payload_header[] */
+} __packed;
+
+/* See MS-SMB2 2.2.42.2.2 */
 struct compression_pattern_payload_v1 {
        __le16  Pattern;
        __le16  Reserved1;