xref: /linux/fs/nfs/Kconfig (revision 52c996d3f40b40f87ef9dc80596903309682acc3)
1# SPDX-License-Identifier: GPL-2.0-only
2config NFS_FS
3	tristate "NFS client support"
4	depends on INET && FILE_LOCKING && MULTIUSER
5	select LOCKD
6	select SUNRPC
7	select NFS_COMMON
8	select NFS_ACL_SUPPORT if NFS_V3_ACL
9	help
10	  Choose Y here if you want to access files residing on other
11	  computers using Sun's Network File System protocol.  To compile
12	  this file system support as a module, choose M here: the module
13	  will be called nfs.
14
15	  To mount file systems exported by NFS servers, you also need to
16	  install the user space mount.nfs command which can be found in
17	  the Linux nfs-utils package, available from http://linux-nfs.org/.
18	  Information about using the mount command is available in the
19	  mount(8) man page.  More detail about the Linux NFS client
20	  implementation is available via the nfs(5) man page.
21
22	  Below you can choose which versions of the NFS protocol are
23	  available in the kernel to mount NFS servers.  Support for NFS
24	  version 2 (RFC 1094) is always available when NFS_FS is selected.
25
26	  To configure a system which mounts its root file system via NFS
27	  at boot time, say Y here, select "Kernel level IP
28	  autoconfiguration" in the NETWORK menu, and select "Root file
29	  system on NFS" below.  You cannot compile this file system as a
30	  module in this case.
31
32	  If unsure, say N.
33
34config NFS_V2
35	tristate "NFS client support for NFS version 2"
36	depends on NFS_FS
37	default n
38	help
39	  This option enables support for version 2 of the NFS protocol
40	  (RFC 1094) in the kernel's NFS client.
41
42	  If unsure, say N.
43
44config NFS_V3
45	tristate "NFS client support for NFS version 3"
46	depends on NFS_FS
47	default y
48	help
49	  This option enables support for version 3 of the NFS protocol
50	  (RFC 1813) in the kernel's NFS client.
51
52	  If unsure, say Y.
53
54config NFS_V3_ACL
55	bool "NFS client support for the NFSv3 ACL protocol extension"
56	depends on NFS_V3
57	help
58	  Some NFS servers support an auxiliary NFSv3 ACL protocol that
59	  Sun added to Solaris but never became an official part of the
60	  NFS version 3 protocol.  This protocol extension allows
61	  applications on NFS clients to manipulate POSIX Access Control
62	  Lists on files residing on NFS servers.  NFS servers enforce
63	  ACLs on local files whether this protocol is available or not.
64
65	  Choose Y here if your NFS server supports the Solaris NFSv3 ACL
66	  protocol extension and you want your NFS client to allow
67	  applications to access and modify ACLs on files on the server.
68
69	  Most NFS servers don't support the Solaris NFSv3 ACL protocol
70	  extension.  You can choose N here or specify the "noacl" mount
71	  option to prevent your NFS client from trying to use the NFSv3
72	  ACL protocol.
73
74	  If unsure, say N.
75
76config NFS_V4
77	tristate "NFS client support for NFS version 4"
78	depends on NFS_FS
79	select KEYS
80	help
81	  This option enables support for version 4 of the NFS protocol
82	  (RFC 3530) in the kernel's NFS client.
83
84	  To mount NFS servers using NFSv4, you also need to install user
85	  space programs which can be found in the Linux nfs-utils package,
86	  available from http://linux-nfs.org/.
87
88	  If unsure, say Y.
89
90config NFS_SWAP
91	bool "Provide swap over NFS support"
92	default n
93	depends on NFS_FS && SWAP
94	select SUNRPC_SWAP
95	help
96	  This option enables swapon to work on files located on NFS mounts.
97
98config NFS_V4_1
99	bool "NFS client support for NFSv4.1"
100	depends on NFS_V4
101	select SUNRPC_BACKCHANNEL
102	help
103	  This option enables support for minor version 1 of the NFSv4 protocol
104	  (RFC 5661) in the kernel's NFS client.
105
106	  If unsure, say N.
107
108config NFS_V4_2
109	bool "NFS client support for NFSv4.2"
110	depends on NFS_V4_1
111	help
112	  This option enables support for minor version 2 of the NFSv4 protocol
113	  in the kernel's NFS client.
114
115	  If unsure, say N.
116
117config PNFS_FILE_LAYOUT
118	tristate
119	depends on NFS_V4_1
120	default NFS_V4
121
122config PNFS_BLOCK
123	tristate
124	depends on NFS_V4_1 && BLK_DEV_DM
125	default NFS_V4
126
127config PNFS_FLEXFILE_LAYOUT
128	tristate
129	depends on NFS_V4_1
130	default NFS_V4
131
132config NFS_V4_1_IMPLEMENTATION_ID_DOMAIN
133	string "NFSv4.1 Implementation ID Domain"
134	depends on NFS_V4_1
135	default "kernel.org"
136	help
137	  This option defines the domain portion of the implementation ID that
138	  may be sent in the NFS exchange_id operation.  The value must be in
139	  the format of a DNS domain name and should be set to the DNS domain
140	  name of the distribution.
141	  If the NFS client is unchanged from the upstream kernel, this
142	  option should be set to the default "kernel.org".
143
144config NFS_V4_1_MIGRATION
145	bool "NFSv4.1 client support for migration"
146	depends on NFS_V4_1
147	default n
148	help
149	  This option makes the NFS client advertise to NFSv4.1 servers that
150          it can support NFSv4 migration.
151
152          The NFSv4.1 pieces of the Linux NFSv4 migration implementation are
153          still experimental.  If you are not an NFSv4 developer, say N here.
154
155config NFS_V4_SECURITY_LABEL
156	bool
157	depends on NFS_V4_2 && SECURITY
158	default y
159
160config ROOT_NFS
161	bool "Root file system on NFS"
162	depends on NFS_FS=y && IP_PNP
163	help
164	  If you want your system to mount its root file system via NFS,
165	  choose Y here.  This is common practice for managing systems
166	  without local permanent storage.  For details, read
167	  <file:Documentation/admin-guide/nfs/nfsroot.rst>.
168
169	  Most people say N here.
170
171config NFS_FSCACHE
172	bool "Provide NFS client caching support"
173	depends on NFS_FS=m && NETFS_SUPPORT || NFS_FS=y && NETFS_SUPPORT=y
174	select FSCACHE
175	help
176	  Say Y here if you want NFS data to be cached locally on disc through
177	  the general filesystem cache manager
178
179config NFS_USE_LEGACY_DNS
180	bool "Use the legacy NFS DNS resolver"
181	depends on NFS_V4
182	help
183	  The kernel now provides a method for translating a host name into an
184	  IP address.  Select Y here if you would rather use your own DNS
185	  resolver script.
186
187	  If unsure, say N
188
189config NFS_USE_KERNEL_DNS
190	bool
191	depends on NFS_V4 && !NFS_USE_LEGACY_DNS
192	select DNS_RESOLVER
193	default y
194
195config NFS_DEBUG
196	bool
197	depends on NFS_FS && SUNRPC_DEBUG
198	select CRC32
199	default y
200
201config NFS_DISABLE_UDP_SUPPORT
202       bool "NFS: Disable NFS UDP protocol support"
203       depends on NFS_FS
204       default y
205       help
206	 Choose Y here to disable the use of NFS over UDP. NFS over UDP
207	 on modern networks (1Gb+) can lead to data corruption caused by
208	 fragmentation during high loads.
209
210config NFS_V4_2_READ_PLUS
211	bool "NFS: Enable support for the NFSv4.2 READ_PLUS operation"
212	depends on NFS_V4_2
213	default y
214	help
215	 Choose Y here to enable use of the NFS v4.2 READ_PLUS operation.
216