]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - fs/cifs/smb2pdu.h
CIFS: Implement follow_link for SMB2
[linux.git] / fs / cifs / smb2pdu.h
index f31043b26bd3226ac4ea309d1c29c3ca3f64df2b..40baeae60b081aa8e94757bf992f1f612f26a927 100644 (file)
@@ -150,6 +150,20 @@ struct smb2_err_rsp {
        __u8   ErrorData[1];  /* variable length */
 } __packed;
 
+struct smb2_symlink_err_rsp {
+       __le32 SymLinkLength;
+       __le32 SymLinkErrorTag;
+       __le32 ReparseTag;
+       __le16 ReparseDataLength;
+       __le16 UnparsedPathLength;
+       __le16 SubstituteNameOffset;
+       __le16 SubstituteNameLength;
+       __le16 PrintNameOffset;
+       __le16 PrintNameLength;
+       __le32 Flags;
+       __u8  PathBuffer[0];
+} __packed;
+
 #define SMB2_CLIENT_GUID_SIZE 16
 
 extern __u8 cifs_client_guid[SMB2_CLIENT_GUID_SIZE];
@@ -428,7 +442,7 @@ struct smb2_create_req {
        __le16 NameLength;
        __le32 CreateContextsOffset;
        __le32 CreateContextsLength;
-       __u8   Buffer[8];
+       __u8   Buffer[0];
 } __packed;
 
 struct smb2_create_rsp {
@@ -485,6 +499,18 @@ struct create_lease {
        struct lease_context lcontext;
 } __packed;
 
+struct create_durable {
+       struct create_context ccontext;
+       __u8   Name[8];
+       union {
+               __u8  Reserved[16];
+               struct {
+                       __u64 PersistentFileId;
+                       __u64 VolatileFileId;
+               } Fid;
+       } Data;
+} __packed;
+
 /* this goes in the ioctl buffer when doing a copychunk request */
 struct copychunk_ioctl {
        char SourceKey[24];