Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 10e70afa authored by Steve French's avatar Steve French
Browse files

[CIFS] DFS no longer experimental



Also updates some DFS flag definitions

Signed-off-by: default avatarSteve French <sfrench@us.ibm.com>
parent b298f223
Loading
Loading
Loading
Loading
+12 −9
Original line number Diff line number Diff line
@@ -118,6 +118,18 @@ config CIFS_DEBUG2
	   option can be turned off unless you are debugging
	   cifs problems.  If unsure, say N.

config CIFS_DFS_UPCALL
	  bool "DFS feature support"
	  depends on CIFS && KEYS
	  help
	    Distributed File System (DFS) support is used to access shares
	    transparently in an enterprise name space, even if the share
	    moves to a different server.  This feature also enables
	    an upcall mechanism for CIFS which contacts userspace helper
	    utilities to provide server name resolution (host names to
	    IP addresses) which is needed for implicit mounts of DFS junction
	    points. If unsure, say N.

config CIFS_EXPERIMENTAL
	  bool "CIFS Experimental Features (EXPERIMENTAL)"
	  depends on CIFS && EXPERIMENTAL
@@ -131,12 +143,3 @@ config CIFS_EXPERIMENTAL
	    (which is disabled by default). See the file fs/cifs/README
	    for more details.  If unsure, say N.
config CIFS_DFS_UPCALL
	  bool "DFS feature support (EXPERIMENTAL)"
	  depends on CIFS_EXPERIMENTAL
	  depends on KEYS
	  help
	    Enables an upcall mechanism for CIFS which contacts userspace
	    helper utilities to provide server name resolution (host names to
	    IP addresses) which is needed for implicit mounts of DFS junction
	    points. If unsure, say N.
+10 −10
Original line number Diff line number Diff line
@@ -1931,19 +1931,19 @@ typedef struct smb_com_transaction2_get_dfs_refer_req {
#define DFS_TYPE_ROOT 0x0001

/* Referral Entry Flags */
#define DFS_NAME_LIST_REF 0x0200
#define DFS_NAME_LIST_REF 0x0200 /* set for domain or DC referral responses */
#define DFS_TARGET_SET_BOUNDARY 0x0400 /* only valid with version 4 dfs req */

typedef struct dfs_referral_level_3 {
	__le16 VersionNumber;
typedef struct dfs_referral_level_3 { /* version 4 is same, + one flag bit */
	__le16 VersionNumber;  /* must be 3 or 4 */
	__le16 Size;
	__le16 ServerType; /* 0x0001 = root targets; 0x0000 = link targets */
	__le16 ReferralEntryFlags; /* 0x0200 bit set only for domain
				      or DC referral responce */
	__le16 ReferralEntryFlags;
	__le32 TimeToLive;
	__le16 DfsPathOffset;
	__le16 DfsAlternatePathOffset;
	__le16 NetworkAddressOffset; /* offset of the link target */
	__le16 ServiceSiteGuid;
	__u8   ServiceSiteGuid[16];  /* MBZ, ignored */
} __attribute__((packed)) REFERRAL3;

typedef struct smb_com_transaction_get_dfs_refer_rsp {
@@ -1953,15 +1953,15 @@ typedef struct smb_com_transaction_get_dfs_refer_rsp {
	__u8 Pad;
	__le16 PathConsumed;
	__le16 NumberOfReferrals;
	__le16 DFSFlags;
	__u16 Pad2;
	__le32 DFSFlags;
	REFERRAL3 referrals[1];	/* array of level 3 dfs_referral structures */
	/* followed by the strings pointed to by the referral structures */
} __attribute__((packed)) TRANSACTION2_GET_DFS_REFER_RSP;

/* DFS Flags */
#define DFSREF_REFERRAL_SERVER  0x0001
#define DFSREF_STORAGE_SERVER   0x0002
#define DFSREF_REFERRAL_SERVER  0x00000001 /* all targets are DFS roots */
#define DFSREF_STORAGE_SERVER   0x00000002 /* no further ref requests needed */
#define DFSREF_TARGET_FAILBACK  0x00000004 /* only for DFS referral version 4 */

/* IOCTL information */
/*