aboutsummaryrefslogtreecommitdiffstats
path: root/fs/cifs/cifspdu.h
diff options
context:
space:
mode:
Diffstat (limited to 'fs/cifs/cifspdu.h')
-rw-r--r--fs/cifs/cifspdu.h46
1 files changed, 46 insertions, 0 deletions
diff --git a/fs/cifs/cifspdu.h b/fs/cifs/cifspdu.h
index aede6a813167..84d37f8e986e 100644
--- a/fs/cifs/cifspdu.h
+++ b/fs/cifs/cifspdu.h
@@ -59,6 +59,7 @@
59#define TRANS2_FIND_FIRST 0x01 59#define TRANS2_FIND_FIRST 0x01
60#define TRANS2_FIND_NEXT 0x02 60#define TRANS2_FIND_NEXT 0x02
61#define TRANS2_QUERY_FS_INFORMATION 0x03 61#define TRANS2_QUERY_FS_INFORMATION 0x03
62#define TRANS2_SET_FS_INFORMATION 0x04
62#define TRANS2_QUERY_PATH_INFORMATION 0x05 63#define TRANS2_QUERY_PATH_INFORMATION 0x05
63#define TRANS2_SET_PATH_INFORMATION 0x06 64#define TRANS2_SET_PATH_INFORMATION 0x06
64#define TRANS2_QUERY_FILE_INFORMATION 0x07 65#define TRANS2_QUERY_FILE_INFORMATION 0x07
@@ -1411,6 +1412,43 @@ typedef struct smb_com_transaction_qfsi_rsp {
1411 __u8 Pad; /* may be three bytes *//* followed by data area */ 1412 __u8 Pad; /* may be three bytes *//* followed by data area */
1412} TRANSACTION2_QFSI_RSP; 1413} TRANSACTION2_QFSI_RSP;
1413 1414
1415
1416/* SETFSInfo Levels */
1417#define SMB_SET_CIFS_UNIX_INFO 0x200
1418typedef struct smb_com_transaction2_setfsi_req {
1419 struct smb_hdr hdr; /* wct = 15 */
1420 __le16 TotalParameterCount;
1421 __le16 TotalDataCount;
1422 __le16 MaxParameterCount;
1423 __le16 MaxDataCount;
1424 __u8 MaxSetupCount;
1425 __u8 Reserved;
1426 __le16 Flags;
1427 __le32 Timeout;
1428 __u16 Reserved2;
1429 __le16 ParameterCount; /* 4 */
1430 __le16 ParameterOffset;
1431 __le16 DataCount; /* 12 */
1432 __le16 DataOffset;
1433 __u8 SetupCount; /* one */
1434 __u8 Reserved3;
1435 __le16 SubCommand; /* TRANS2_SET_FS_INFORMATION */
1436 __le16 ByteCount;
1437 __u8 Pad;
1438 __u16 FileNum; /* Parameters start. */
1439 __le16 InformationLevel;/* Parameters end. */
1440 __le16 ClientUnixMajor; /* Data start. */
1441 __le16 ClientUnixMinor;
1442 __le64 ClientUnixCap; /* Data end */
1443} TRANSACTION2_SETFSI_REQ;
1444
1445typedef struct smb_com_transaction2_setfsi_rsp {
1446 struct smb_hdr hdr; /* wct = 10 */
1447 struct trans2_resp t2;
1448 __u16 ByteCount;
1449} TRANSACTION2_SETFSI_RSP;
1450
1451
1414typedef struct smb_com_transaction2_get_dfs_refer_req { 1452typedef struct smb_com_transaction2_get_dfs_refer_req {
1415 struct smb_hdr hdr; /* wct = 15 */ 1453 struct smb_hdr hdr; /* wct = 15 */
1416 __le16 TotalParameterCount; 1454 __le16 TotalParameterCount;
@@ -1551,12 +1589,20 @@ typedef struct {
1551 __le16 MinorVersionNumber; 1589 __le16 MinorVersionNumber;
1552 __le64 Capability; 1590 __le64 Capability;
1553} FILE_SYSTEM_UNIX_INFO; /* Unix extensions info, level 0x200 */ 1591} FILE_SYSTEM_UNIX_INFO; /* Unix extensions info, level 0x200 */
1592
1593/* Version numbers for CIFS UNIX major and minor. */
1594#define CIFS_UNIX_MAJOR_VERSION 1
1595#define CIFS_UNIX_MINOR_VERSION 0
1596
1554/* Linux/Unix extensions capability flags */ 1597/* Linux/Unix extensions capability flags */
1555#define CIFS_UNIX_FCNTL_CAP 0x00000001 /* support for fcntl locks */ 1598#define CIFS_UNIX_FCNTL_CAP 0x00000001 /* support for fcntl locks */
1556#define CIFS_UNIX_POSIX_ACL_CAP 0x00000002 /* support getfacl/setfacl */ 1599#define CIFS_UNIX_POSIX_ACL_CAP 0x00000002 /* support getfacl/setfacl */
1557#define CIFS_UNIX_XATTR_CAP 0x00000004 /* support new namespace */ 1600#define CIFS_UNIX_XATTR_CAP 0x00000004 /* support new namespace */
1558#define CIFS_UNIX_EXTATTR_CAP 0x00000008 /* support chattr/chflag */ 1601#define CIFS_UNIX_EXTATTR_CAP 0x00000008 /* support chattr/chflag */
1602#define CIFS_UNIX_POSIX_PATHNAMES_CAP 0x00000010 /* Use POSIX pathnames on the wire. */
1603
1559#define CIFS_POSIX_EXTENSIONS 0x00000010 /* support for new QFSInfo */ 1604#define CIFS_POSIX_EXTENSIONS 0x00000010 /* support for new QFSInfo */
1605
1560typedef struct { 1606typedef struct {
1561 /* For undefined recommended transfer size return -1 in that field */ 1607 /* For undefined recommended transfer size return -1 in that field */
1562 __le32 OptimalTransferSize; /* bsize on some os, iosize on other os */ 1608 __le32 OptimalTransferSize; /* bsize on some os, iosize on other os */