aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve French <stfrench@microsoft.com>2018-10-31 12:24:33 -0400
committerSteve French <stfrench@microsoft.com>2018-11-02 15:09:41 -0400
commit0df444a00f32a3ab4d37c3c101bb960ee38a9617 (patch)
treec5fc3a7bc2b9456ba7c35d363e04e29b14f2fad8
parentdfe33f9abc08997e56f9bdf14fe9ac7ac0e14075 (diff)
smb3: missing defines and structs for reparse point handling
We were missing some structs from MS-FSCC relating to reparse point handling. Add them to protocol defines in smb2pdu.h Signed-off-by: Steve French <stfrench@microsoft.com> Reviewed-by: Aurelien Aptel <aaptel@suse.com>
-rw-r--r--fs/cifs/cifspdu.h3
-rw-r--r--fs/cifs/smb2pdu.h35
2 files changed, 38 insertions, 0 deletions
diff --git a/fs/cifs/cifspdu.h b/fs/cifs/cifspdu.h
index 1ce733f3582f..79d842e7240c 100644
--- a/fs/cifs/cifspdu.h
+++ b/fs/cifs/cifspdu.h
@@ -1539,6 +1539,9 @@ struct reparse_symlink_data {
1539 char PathBuffer[0]; 1539 char PathBuffer[0];
1540} __attribute__((packed)); 1540} __attribute__((packed));
1541 1541
1542/* Flag above */
1543#define SYMLINK_FLAG_RELATIVE 0x00000001
1544
1542/* For IO_REPARSE_TAG_NFS */ 1545/* For IO_REPARSE_TAG_NFS */
1543#define NFS_SPECFILE_LNK 0x00000000014B4E4C 1546#define NFS_SPECFILE_LNK 0x00000000014B4E4C
1544#define NFS_SPECFILE_CHR 0x0000000000524843 1547#define NFS_SPECFILE_CHR 0x0000000000524843
diff --git a/fs/cifs/smb2pdu.h b/fs/cifs/smb2pdu.h
index f753f424d7f1..5671d5ee7f58 100644
--- a/fs/cifs/smb2pdu.h
+++ b/fs/cifs/smb2pdu.h
@@ -842,6 +842,41 @@ struct fsctl_get_integrity_information_rsp {
842/* Integrity flags for above */ 842/* Integrity flags for above */
843#define FSCTL_INTEGRITY_FLAG_CHECKSUM_ENFORCEMENT_OFF 0x00000001 843#define FSCTL_INTEGRITY_FLAG_CHECKSUM_ENFORCEMENT_OFF 0x00000001
844 844
845/* Reparse structures - see MS-FSCC 2.1.2 */
846
847/* struct fsctl_reparse_info_req is empty, only response structs (see below) */
848
849struct reparse_data_buffer {
850 __le32 ReparseTag;
851 __le16 ReparseDataLength;
852 __u16 Reserved;
853 __u8 DataBuffer[0]; /* Variable Length */
854} __packed;
855
856struct reparse_guid_data_buffer {
857 __le32 ReparseTag;
858 __le16 ReparseDataLength;
859 __u16 Reserved;
860 __u8 ReparseGuid[16];
861 __u8 DataBuffer[0]; /* Variable Length */
862} __packed;
863
864struct reparse_mount_point_data_buffer {
865 __le32 ReparseTag;
866 __le16 ReparseDataLength;
867 __u16 Reserved;
868 __le16 SubstituteNameOffset;
869 __le16 SubstituteNameLength;
870 __le16 PrintNameOffset;
871 __le16 PrintNameLength;
872 __u8 PathBuffer[0]; /* Variable Length */
873} __packed;
874
875/* See MS-FSCC 2.1.2.4 and cifspdu.h for struct reparse_symlink_data */
876
877/* See MS-FSCC 2.1.2.6 and cifspdu.h for struct reparse_posix_data */
878
879
845/* See MS-DFSC 2.2.2 */ 880/* See MS-DFSC 2.2.2 */
846struct fsctl_get_dfs_referral_req { 881struct fsctl_get_dfs_referral_req {
847 __le16 MaxReferralLevel; 882 __le16 MaxReferralLevel;