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