summaryrefslogtreecommitdiffstats
path: root/fs/cifs/smb2pdu.h
diff options
context:
space:
mode:
authorPavel Shilovsky <pshilovsky@samba.org>2012-09-18 16:20:31 -0700
committerSteve French <smfrench@gmail.com>2012-09-24 21:46:29 -0500
commit35143eb5c2e3ae6c91b29144449d23f05f573796 (patch)
treec022f223815788cad6dbc9156f9d47edefc5f81d /fs/cifs/smb2pdu.h
parent8ceb984379462f94bdebef3288d569c6e1f912ea (diff)
downloadtalos-obmc-linux-35143eb5c2e3ae6c91b29144449d23f05f573796.tar.gz
talos-obmc-linux-35143eb5c2e3ae6c91b29144449d23f05f573796.zip
CIFS: Add SMB2 support for rename operation
Signed-off-by: Pavel Shilovsky <piastryyy@gmail.com> Signed-off-by: Steve French <smfrench@gmail.com>
Diffstat (limited to 'fs/cifs/smb2pdu.h')
-rw-r--r--fs/cifs/smb2pdu.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/fs/cifs/smb2pdu.h b/fs/cifs/smb2pdu.h
index 21ec9ed280f9..b03ca37d0d58 100644
--- a/fs/cifs/smb2pdu.h
+++ b/fs/cifs/smb2pdu.h
@@ -568,6 +568,25 @@ struct smb2_query_info_rsp {
__u8 Buffer[1];
} __packed;
+struct smb2_set_info_req {
+ struct smb2_hdr hdr;
+ __le16 StructureSize; /* Must be 33 */
+ __u8 InfoType;
+ __u8 FileInfoClass;
+ __le32 BufferLength;
+ __le16 BufferOffset;
+ __u16 Reserved;
+ __le32 AdditionalInformation;
+ __u64 PersistentFileId; /* opaque endianness */
+ __u64 VolatileFileId; /* opaque endianness */
+ __u8 Buffer[1];
+} __packed;
+
+struct smb2_set_info_rsp {
+ struct smb2_hdr hdr;
+ __le16 StructureSize; /* Must be 2 */
+} __packed;
+
/*
* PDU infolevel structure definitions
* BB consider moving to a different header
@@ -625,6 +644,15 @@ struct smb2_file_internal_info {
__le64 IndexNumber;
} __packed; /* level 6 Query */
+struct smb2_file_rename_info { /* encoding of request for level 10 */
+ __u8 ReplaceIfExists; /* 1 = replace existing target with new */
+ /* 0 = fail if target already exists */
+ __u8 Reserved[7];
+ __u64 RootDirectory; /* MBZ for network operations (why says spec?) */
+ __le32 FileNameLength;
+ char FileName[0]; /* New name to be assigned */
+} __packed; /* level 10 Set */
+
/*
* This level 18, although with struct with same name is different from cifs
* level 0x107. Level 0x107 has an extra u64 between AccessFlags and
OpenPOWER on IntegriCloud