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