Merge tag 'v3.18-rc4' into x86/cleanups, to refresh the tree before pulling new changes.
[firefly-linux-kernel-4.4.55.git] / fs / cifs / Kconfig
1 config CIFS
2         tristate "CIFS support (advanced network filesystem, SMBFS successor)"
3         depends on INET
4         select NLS
5         select CRYPTO
6         select CRYPTO_MD4
7         select CRYPTO_MD5
8         select CRYPTO_HMAC
9         select CRYPTO_ARC4
10         select CRYPTO_ECB
11         select CRYPTO_DES
12         select CRYPTO_SHA256
13         select CRYPTO_CMAC
14         help
15           This is the client VFS module for the Common Internet File System
16           (CIFS) protocol which is the successor to the Server Message Block
17           (SMB) protocol, the native file sharing mechanism for most early
18           PC operating systems.  The CIFS protocol is fully supported by
19           file servers such as Windows 2000 (including Windows 2003, Windows 2008,
20           NT 4 and Windows XP) as well by Samba (which provides excellent CIFS
21           server support for Linux and many other operating systems). Limited
22           support for OS/2 and Windows ME and similar servers is provided as
23           well.
24
25           The module also provides optional support for the followon
26           protocols for CIFS including SMB3, which enables
27           useful performance and security features (see the description
28           of CONFIG_CIFS_SMB2).
29
30           The cifs module provides an advanced network file system
31           client for mounting to CIFS compliant servers.  It includes
32           support for DFS (hierarchical name space), secure per-user
33           session establishment via Kerberos or NTLM or NTLMv2,
34           safe distributed caching (oplock), optional packet
35           signing, Unicode and other internationalization improvements.
36           If you need to mount to Samba or Windows from this machine, say Y.
37
38 config CIFS_STATS
39         bool "CIFS statistics"
40         depends on CIFS
41         help
42           Enabling this option will cause statistics for each server share
43           mounted by the cifs client to be displayed in /proc/fs/cifs/Stats
44
45 config CIFS_STATS2
46         bool "Extended statistics"
47         depends on CIFS_STATS
48         help
49           Enabling this option will allow more detailed statistics on SMB
50           request timing to be displayed in /proc/fs/cifs/DebugData and also
51           allow optional logging of slow responses to dmesg (depending on the
52           value of /proc/fs/cifs/cifsFYI, see fs/cifs/README for more details).
53           These additional statistics may have a minor effect on performance
54           and memory utilization.
55
56           Unless you are a developer or are doing network performance analysis
57           or tuning, say N.
58
59 config CIFS_WEAK_PW_HASH
60         bool "Support legacy servers which use weaker LANMAN security"
61         depends on CIFS
62         help
63           Modern CIFS servers including Samba and most Windows versions
64           (since 1997) support stronger NTLM (and even NTLMv2 and Kerberos)
65           security mechanisms. These hash the password more securely
66           than the mechanisms used in the older LANMAN version of the
67           SMB protocol but LANMAN based authentication is needed to
68           establish sessions with some old SMB servers.
69
70           Enabling this option allows the cifs module to mount to older
71           LANMAN based servers such as OS/2 and Windows 95, but such
72           mounts may be less secure than mounts using NTLM or more recent
73           security mechanisms if you are on a public network.  Unless you
74           have a need to access old SMB servers (and are on a private
75           network) you probably want to say N.  Even if this support
76           is enabled in the kernel build, LANMAN authentication will not be
77           used automatically. At runtime LANMAN mounts are disabled but
78           can be set to required (or optional) either in
79           /proc/fs/cifs (see fs/cifs/README for more detail) or via an
80           option on the mount command. This support is disabled by
81           default in order to reduce the possibility of a downgrade
82           attack.
83
84           If unsure, say N.
85
86 config CIFS_UPCALL
87         bool "Kerberos/SPNEGO advanced session setup"
88         depends on CIFS && KEYS
89         select DNS_RESOLVER
90         help
91           Enables an upcall mechanism for CIFS which accesses userspace helper
92           utilities to provide SPNEGO packaged (RFC 4178) Kerberos tickets
93           which are needed to mount to certain secure servers (for which more
94           secure Kerberos authentication is required). If unsure, say N.
95
96 config CIFS_XATTR
97         bool "CIFS extended attributes"
98         depends on CIFS
99         help
100           Extended attributes are name:value pairs associated with inodes by
101           the kernel or by users (see the attr(5) manual page, or visit
102           <http://acl.bestbits.at/> for details).  CIFS maps the name of
103           extended attributes beginning with the user namespace prefix
104           to SMB/CIFS EAs. EAs are stored on Windows servers without the
105           user namespace prefix, but their names are seen by Linux cifs clients
106           prefaced by the user namespace prefix. The system namespace
107           (used by some filesystems to store ACLs) is not supported at
108           this time.
109
110           If unsure, say N.
111
112 config CIFS_POSIX
113         bool "CIFS POSIX Extensions"
114         depends on CIFS_XATTR
115         help
116           Enabling this option will cause the cifs client to attempt to
117           negotiate a newer dialect with servers, such as Samba 3.0.5
118           or later, that optionally can handle more POSIX like (rather
119           than Windows like) file behavior.  It also enables
120           support for POSIX ACLs (getfacl and setfacl) to servers
121           (such as Samba 3.10 and later) which can negotiate
122           CIFS POSIX ACL support.  If unsure, say N.
123
124 config CIFS_ACL
125           bool "Provide CIFS ACL support"
126           depends on CIFS_XATTR && KEYS
127           help
128             Allows fetching CIFS/NTFS ACL from the server.  The DACL blob
129             is handed over to the application/caller.  See the man
130             page for getcifsacl for more information.
131
132 config CIFS_DEBUG
133         bool "Enable CIFS debugging routines"
134         default y
135         depends on CIFS
136         help
137            Enabling this option adds helpful debugging messages to
138            the cifs code which increases the size of the cifs module.
139            If unsure, say Y.
140 config CIFS_DEBUG2
141         bool "Enable additional CIFS debugging routines"
142         depends on CIFS_DEBUG
143         help
144            Enabling this option adds a few more debugging routines
145            to the cifs code which slightly increases the size of
146            the cifs module and can cause additional logging of debug
147            messages in some error paths, slowing performance. This
148            option can be turned off unless you are debugging
149            cifs problems.  If unsure, say N.
150
151 config CIFS_DFS_UPCALL
152           bool "DFS feature support"
153           depends on CIFS && KEYS
154           select DNS_RESOLVER
155           help
156             Distributed File System (DFS) support is used to access shares
157             transparently in an enterprise name space, even if the share
158             moves to a different server.  This feature also enables
159             an upcall mechanism for CIFS which contacts userspace helper
160             utilities to provide server name resolution (host names to
161             IP addresses) which is needed for implicit mounts of DFS junction
162             points. If unsure, say N.
163
164 config CIFS_NFSD_EXPORT
165           bool "Allow nfsd to export CIFS file system"
166           depends on CIFS && BROKEN
167           help
168            Allows NFS server to export a CIFS mounted share (nfsd over cifs)
169
170 config CIFS_SMB2
171         bool "SMB2 and SMB3 network file system support"
172         depends on CIFS && INET
173         select NLS
174         select KEYS
175         select FSCACHE
176         select DNS_RESOLVER
177
178         help
179           This enables support for the Server Message Block version 2
180           family of protocols, including SMB3.  SMB3 support is
181           enabled on mount by specifying "vers=3.0" in the mount
182           options. These protocols are the successors to the popular
183           CIFS and SMB network file sharing protocols. SMB3 is the
184           native file sharing mechanism for the more recent
185           versions of Windows (Windows 8 and Windows 2012 and
186           later) and Samba server and many others support SMB3 well.
187           In general SMB3 enables better performance, security
188           and features, than would be possible with CIFS (Note that
189           when mounting to Samba, due to the CIFS POSIX extensions,
190           CIFS mounts can provide slightly better POSIX compatibility
191           than SMB3 mounts do though). Note that SMB2/SMB3 mount
192           options are also slightly simpler (compared to CIFS) due
193           to protocol improvements.
194
195 config CIFS_FSCACHE
196           bool "Provide CIFS client caching support"
197           depends on CIFS=m && FSCACHE || CIFS=y && FSCACHE=y
198           help
199             Makes CIFS FS-Cache capable. Say Y here if you want your CIFS data
200             to be cached locally on disk through the general filesystem cache
201             manager. If unsure, say N.
202