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