18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_ciconfig NFS_FS
38c2ecf20Sopenharmony_ci	tristate "NFS client support"
48c2ecf20Sopenharmony_ci	depends on INET && FILE_LOCKING && MULTIUSER
58c2ecf20Sopenharmony_ci	select LOCKD
68c2ecf20Sopenharmony_ci	select SUNRPC
78c2ecf20Sopenharmony_ci	select NFS_ACL_SUPPORT if NFS_V3_ACL
88c2ecf20Sopenharmony_ci	help
98c2ecf20Sopenharmony_ci	  Choose Y here if you want to access files residing on other
108c2ecf20Sopenharmony_ci	  computers using Sun's Network File System protocol.  To compile
118c2ecf20Sopenharmony_ci	  this file system support as a module, choose M here: the module
128c2ecf20Sopenharmony_ci	  will be called nfs.
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_ci	  To mount file systems exported by NFS servers, you also need to
158c2ecf20Sopenharmony_ci	  install the user space mount.nfs command which can be found in
168c2ecf20Sopenharmony_ci	  the Linux nfs-utils package, available from http://linux-nfs.org/.
178c2ecf20Sopenharmony_ci	  Information about using the mount command is available in the
188c2ecf20Sopenharmony_ci	  mount(8) man page.  More detail about the Linux NFS client
198c2ecf20Sopenharmony_ci	  implementation is available via the nfs(5) man page.
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ci	  Below you can choose which versions of the NFS protocol are
228c2ecf20Sopenharmony_ci	  available in the kernel to mount NFS servers.  Support for NFS
238c2ecf20Sopenharmony_ci	  version 2 (RFC 1094) is always available when NFS_FS is selected.
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ci	  To configure a system which mounts its root file system via NFS
268c2ecf20Sopenharmony_ci	  at boot time, say Y here, select "Kernel level IP
278c2ecf20Sopenharmony_ci	  autoconfiguration" in the NETWORK menu, and select "Root file
288c2ecf20Sopenharmony_ci	  system on NFS" below.  You cannot compile this file system as a
298c2ecf20Sopenharmony_ci	  module in this case.
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci	  If unsure, say N.
328c2ecf20Sopenharmony_ci
338c2ecf20Sopenharmony_ciconfig NFS_V2
348c2ecf20Sopenharmony_ci	tristate "NFS client support for NFS version 2"
358c2ecf20Sopenharmony_ci	depends on NFS_FS
368c2ecf20Sopenharmony_ci	default y
378c2ecf20Sopenharmony_ci	help
388c2ecf20Sopenharmony_ci	  This option enables support for version 2 of the NFS protocol
398c2ecf20Sopenharmony_ci	  (RFC 1094) in the kernel's NFS client.
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ci	  If unsure, say Y.
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ciconfig NFS_V3
448c2ecf20Sopenharmony_ci	tristate "NFS client support for NFS version 3"
458c2ecf20Sopenharmony_ci	depends on NFS_FS
468c2ecf20Sopenharmony_ci	default y
478c2ecf20Sopenharmony_ci	help
488c2ecf20Sopenharmony_ci	  This option enables support for version 3 of the NFS protocol
498c2ecf20Sopenharmony_ci	  (RFC 1813) in the kernel's NFS client.
508c2ecf20Sopenharmony_ci
518c2ecf20Sopenharmony_ci	  If unsure, say Y.
528c2ecf20Sopenharmony_ci
538c2ecf20Sopenharmony_ciconfig NFS_V3_ACL
548c2ecf20Sopenharmony_ci	bool "NFS client support for the NFSv3 ACL protocol extension"
558c2ecf20Sopenharmony_ci	depends on NFS_V3
568c2ecf20Sopenharmony_ci	help
578c2ecf20Sopenharmony_ci	  Some NFS servers support an auxiliary NFSv3 ACL protocol that
588c2ecf20Sopenharmony_ci	  Sun added to Solaris but never became an official part of the
598c2ecf20Sopenharmony_ci	  NFS version 3 protocol.  This protocol extension allows
608c2ecf20Sopenharmony_ci	  applications on NFS clients to manipulate POSIX Access Control
618c2ecf20Sopenharmony_ci	  Lists on files residing on NFS servers.  NFS servers enforce
628c2ecf20Sopenharmony_ci	  ACLs on local files whether this protocol is available or not.
638c2ecf20Sopenharmony_ci
648c2ecf20Sopenharmony_ci	  Choose Y here if your NFS server supports the Solaris NFSv3 ACL
658c2ecf20Sopenharmony_ci	  protocol extension and you want your NFS client to allow
668c2ecf20Sopenharmony_ci	  applications to access and modify ACLs on files on the server.
678c2ecf20Sopenharmony_ci
688c2ecf20Sopenharmony_ci	  Most NFS servers don't support the Solaris NFSv3 ACL protocol
698c2ecf20Sopenharmony_ci	  extension.  You can choose N here or specify the "noacl" mount
708c2ecf20Sopenharmony_ci	  option to prevent your NFS client from trying to use the NFSv3
718c2ecf20Sopenharmony_ci	  ACL protocol.
728c2ecf20Sopenharmony_ci
738c2ecf20Sopenharmony_ci	  If unsure, say N.
748c2ecf20Sopenharmony_ci
758c2ecf20Sopenharmony_ciconfig NFS_V4
768c2ecf20Sopenharmony_ci	tristate "NFS client support for NFS version 4"
778c2ecf20Sopenharmony_ci	depends on NFS_FS
788c2ecf20Sopenharmony_ci	select SUNRPC_GSS
798c2ecf20Sopenharmony_ci	select KEYS
808c2ecf20Sopenharmony_ci	help
818c2ecf20Sopenharmony_ci	  This option enables support for version 4 of the NFS protocol
828c2ecf20Sopenharmony_ci	  (RFC 3530) in the kernel's NFS client.
838c2ecf20Sopenharmony_ci
848c2ecf20Sopenharmony_ci	  To mount NFS servers using NFSv4, you also need to install user
858c2ecf20Sopenharmony_ci	  space programs which can be found in the Linux nfs-utils package,
868c2ecf20Sopenharmony_ci	  available from http://linux-nfs.org/.
878c2ecf20Sopenharmony_ci
888c2ecf20Sopenharmony_ci	  If unsure, say Y.
898c2ecf20Sopenharmony_ci
908c2ecf20Sopenharmony_ciconfig NFS_SWAP
918c2ecf20Sopenharmony_ci	bool "Provide swap over NFS support"
928c2ecf20Sopenharmony_ci	default n
938c2ecf20Sopenharmony_ci	depends on NFS_FS && SWAP
948c2ecf20Sopenharmony_ci	select SUNRPC_SWAP
958c2ecf20Sopenharmony_ci	help
968c2ecf20Sopenharmony_ci	  This option enables swapon to work on files located on NFS mounts.
978c2ecf20Sopenharmony_ci
988c2ecf20Sopenharmony_ciconfig NFS_V4_1
998c2ecf20Sopenharmony_ci	bool "NFS client support for NFSv4.1"
1008c2ecf20Sopenharmony_ci	depends on NFS_V4
1018c2ecf20Sopenharmony_ci	select SUNRPC_BACKCHANNEL
1028c2ecf20Sopenharmony_ci	help
1038c2ecf20Sopenharmony_ci	  This option enables support for minor version 1 of the NFSv4 protocol
1048c2ecf20Sopenharmony_ci	  (RFC 5661) in the kernel's NFS client.
1058c2ecf20Sopenharmony_ci
1068c2ecf20Sopenharmony_ci	  If unsure, say N.
1078c2ecf20Sopenharmony_ci
1088c2ecf20Sopenharmony_ciconfig NFS_V4_2
1098c2ecf20Sopenharmony_ci	bool "NFS client support for NFSv4.2"
1108c2ecf20Sopenharmony_ci	depends on NFS_V4_1
1118c2ecf20Sopenharmony_ci	help
1128c2ecf20Sopenharmony_ci	  This option enables support for minor version 2 of the NFSv4 protocol
1138c2ecf20Sopenharmony_ci	  in the kernel's NFS client.
1148c2ecf20Sopenharmony_ci
1158c2ecf20Sopenharmony_ci	  If unsure, say N.
1168c2ecf20Sopenharmony_ci
1178c2ecf20Sopenharmony_ciconfig PNFS_FILE_LAYOUT
1188c2ecf20Sopenharmony_ci	tristate
1198c2ecf20Sopenharmony_ci	depends on NFS_V4_1
1208c2ecf20Sopenharmony_ci	default NFS_V4
1218c2ecf20Sopenharmony_ci
1228c2ecf20Sopenharmony_ciconfig PNFS_BLOCK
1238c2ecf20Sopenharmony_ci	tristate
1248c2ecf20Sopenharmony_ci	depends on NFS_V4_1 && BLK_DEV_DM
1258c2ecf20Sopenharmony_ci	default NFS_V4
1268c2ecf20Sopenharmony_ci
1278c2ecf20Sopenharmony_ciconfig PNFS_FLEXFILE_LAYOUT
1288c2ecf20Sopenharmony_ci	tristate
1298c2ecf20Sopenharmony_ci	depends on NFS_V4_1 && NFS_V3
1308c2ecf20Sopenharmony_ci	default NFS_V4
1318c2ecf20Sopenharmony_ci
1328c2ecf20Sopenharmony_ciconfig NFS_V4_1_IMPLEMENTATION_ID_DOMAIN
1338c2ecf20Sopenharmony_ci	string "NFSv4.1 Implementation ID Domain"
1348c2ecf20Sopenharmony_ci	depends on NFS_V4_1
1358c2ecf20Sopenharmony_ci	default "kernel.org"
1368c2ecf20Sopenharmony_ci	help
1378c2ecf20Sopenharmony_ci	  This option defines the domain portion of the implementation ID that
1388c2ecf20Sopenharmony_ci	  may be sent in the NFS exchange_id operation.  The value must be in
1398c2ecf20Sopenharmony_ci	  the format of a DNS domain name and should be set to the DNS domain
1408c2ecf20Sopenharmony_ci	  name of the distribution.
1418c2ecf20Sopenharmony_ci	  If the NFS client is unchanged from the upstream kernel, this
1428c2ecf20Sopenharmony_ci	  option should be set to the default "kernel.org".
1438c2ecf20Sopenharmony_ci
1448c2ecf20Sopenharmony_ciconfig NFS_V4_1_MIGRATION
1458c2ecf20Sopenharmony_ci	bool "NFSv4.1 client support for migration"
1468c2ecf20Sopenharmony_ci	depends on NFS_V4_1
1478c2ecf20Sopenharmony_ci	default n
1488c2ecf20Sopenharmony_ci	help
1498c2ecf20Sopenharmony_ci	  This option makes the NFS client advertise to NFSv4.1 servers that
1508c2ecf20Sopenharmony_ci          it can support NFSv4 migration.
1518c2ecf20Sopenharmony_ci
1528c2ecf20Sopenharmony_ci          The NFSv4.1 pieces of the Linux NFSv4 migration implementation are
1538c2ecf20Sopenharmony_ci          still experimental.  If you are not an NFSv4 developer, say N here.
1548c2ecf20Sopenharmony_ci
1558c2ecf20Sopenharmony_ciconfig NFS_V4_SECURITY_LABEL
1568c2ecf20Sopenharmony_ci	bool
1578c2ecf20Sopenharmony_ci	depends on NFS_V4_2 && SECURITY
1588c2ecf20Sopenharmony_ci	default y
1598c2ecf20Sopenharmony_ci
1608c2ecf20Sopenharmony_ciconfig ROOT_NFS
1618c2ecf20Sopenharmony_ci	bool "Root file system on NFS"
1628c2ecf20Sopenharmony_ci	depends on NFS_FS=y && IP_PNP
1638c2ecf20Sopenharmony_ci	help
1648c2ecf20Sopenharmony_ci	  If you want your system to mount its root file system via NFS,
1658c2ecf20Sopenharmony_ci	  choose Y here.  This is common practice for managing systems
1668c2ecf20Sopenharmony_ci	  without local permanent storage.  For details, read
1678c2ecf20Sopenharmony_ci	  <file:Documentation/admin-guide/nfs/nfsroot.rst>.
1688c2ecf20Sopenharmony_ci
1698c2ecf20Sopenharmony_ci	  Most people say N here.
1708c2ecf20Sopenharmony_ci
1718c2ecf20Sopenharmony_ciconfig NFS_FSCACHE
1728c2ecf20Sopenharmony_ci	bool "Provide NFS client caching support"
1738c2ecf20Sopenharmony_ci	depends on NFS_FS=m && FSCACHE || NFS_FS=y && FSCACHE=y
1748c2ecf20Sopenharmony_ci	help
1758c2ecf20Sopenharmony_ci	  Say Y here if you want NFS data to be cached locally on disc through
1768c2ecf20Sopenharmony_ci	  the general filesystem cache manager
1778c2ecf20Sopenharmony_ci
1788c2ecf20Sopenharmony_ciconfig NFS_USE_LEGACY_DNS
1798c2ecf20Sopenharmony_ci	bool "Use the legacy NFS DNS resolver"
1808c2ecf20Sopenharmony_ci	depends on NFS_V4
1818c2ecf20Sopenharmony_ci	help
1828c2ecf20Sopenharmony_ci	  The kernel now provides a method for translating a host name into an
1838c2ecf20Sopenharmony_ci	  IP address.  Select Y here if you would rather use your own DNS
1848c2ecf20Sopenharmony_ci	  resolver script.
1858c2ecf20Sopenharmony_ci
1868c2ecf20Sopenharmony_ci	  If unsure, say N
1878c2ecf20Sopenharmony_ci
1888c2ecf20Sopenharmony_ciconfig NFS_USE_KERNEL_DNS
1898c2ecf20Sopenharmony_ci	bool
1908c2ecf20Sopenharmony_ci	depends on NFS_V4 && !NFS_USE_LEGACY_DNS
1918c2ecf20Sopenharmony_ci	select DNS_RESOLVER
1928c2ecf20Sopenharmony_ci	default y
1938c2ecf20Sopenharmony_ci
1948c2ecf20Sopenharmony_ciconfig NFS_DEBUG
1958c2ecf20Sopenharmony_ci	bool
1968c2ecf20Sopenharmony_ci	depends on NFS_FS && SUNRPC_DEBUG
1978c2ecf20Sopenharmony_ci	select CRC32
1988c2ecf20Sopenharmony_ci	default y
1998c2ecf20Sopenharmony_ci
2008c2ecf20Sopenharmony_ciconfig NFS_DISABLE_UDP_SUPPORT
2018c2ecf20Sopenharmony_ci       bool "NFS: Disable NFS UDP protocol support"
2028c2ecf20Sopenharmony_ci       depends on NFS_FS
2038c2ecf20Sopenharmony_ci       default y
2048c2ecf20Sopenharmony_ci       help
2058c2ecf20Sopenharmony_ci	 Choose Y here to disable the use of NFS over UDP. NFS over UDP
2068c2ecf20Sopenharmony_ci	 on modern networks (1Gb+) can lead to data corruption caused by
2078c2ecf20Sopenharmony_ci	 fragmentation during high loads.
2088c2ecf20Sopenharmony_ci
2098c2ecf20Sopenharmony_ciconfig NFS_V4_2_READ_PLUS
2108c2ecf20Sopenharmony_ci	bool "NFS: Enable support for the NFSv4.2 READ_PLUS operation"
2118c2ecf20Sopenharmony_ci	depends on NFS_V4_2
2128c2ecf20Sopenharmony_ci	default n
2138c2ecf20Sopenharmony_ci	help
2148c2ecf20Sopenharmony_ci	 This is intended for developers only. The READ_PLUS operation has
2158c2ecf20Sopenharmony_ci	 been shown to have issues under specific conditions and should not
2168c2ecf20Sopenharmony_ci	 be used in production.
217