162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ciconfig NFS_FS
362306a36Sopenharmony_ci	tristate "NFS client support"
462306a36Sopenharmony_ci	depends on INET && FILE_LOCKING && MULTIUSER
562306a36Sopenharmony_ci	select LOCKD
662306a36Sopenharmony_ci	select SUNRPC
762306a36Sopenharmony_ci	select NFS_ACL_SUPPORT if NFS_V3_ACL
862306a36Sopenharmony_ci	help
962306a36Sopenharmony_ci	  Choose Y here if you want to access files residing on other
1062306a36Sopenharmony_ci	  computers using Sun's Network File System protocol.  To compile
1162306a36Sopenharmony_ci	  this file system support as a module, choose M here: the module
1262306a36Sopenharmony_ci	  will be called nfs.
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci	  To mount file systems exported by NFS servers, you also need to
1562306a36Sopenharmony_ci	  install the user space mount.nfs command which can be found in
1662306a36Sopenharmony_ci	  the Linux nfs-utils package, available from http://linux-nfs.org/.
1762306a36Sopenharmony_ci	  Information about using the mount command is available in the
1862306a36Sopenharmony_ci	  mount(8) man page.  More detail about the Linux NFS client
1962306a36Sopenharmony_ci	  implementation is available via the nfs(5) man page.
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ci	  Below you can choose which versions of the NFS protocol are
2262306a36Sopenharmony_ci	  available in the kernel to mount NFS servers.  Support for NFS
2362306a36Sopenharmony_ci	  version 2 (RFC 1094) is always available when NFS_FS is selected.
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci	  To configure a system which mounts its root file system via NFS
2662306a36Sopenharmony_ci	  at boot time, say Y here, select "Kernel level IP
2762306a36Sopenharmony_ci	  autoconfiguration" in the NETWORK menu, and select "Root file
2862306a36Sopenharmony_ci	  system on NFS" below.  You cannot compile this file system as a
2962306a36Sopenharmony_ci	  module in this case.
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci	  If unsure, say N.
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ciconfig NFS_V2
3462306a36Sopenharmony_ci	tristate "NFS client support for NFS version 2"
3562306a36Sopenharmony_ci	depends on NFS_FS
3662306a36Sopenharmony_ci	default y
3762306a36Sopenharmony_ci	help
3862306a36Sopenharmony_ci	  This option enables support for version 2 of the NFS protocol
3962306a36Sopenharmony_ci	  (RFC 1094) in the kernel's NFS client.
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci	  If unsure, say Y.
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ciconfig NFS_V3
4462306a36Sopenharmony_ci	tristate "NFS client support for NFS version 3"
4562306a36Sopenharmony_ci	depends on NFS_FS
4662306a36Sopenharmony_ci	default y
4762306a36Sopenharmony_ci	help
4862306a36Sopenharmony_ci	  This option enables support for version 3 of the NFS protocol
4962306a36Sopenharmony_ci	  (RFC 1813) in the kernel's NFS client.
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci	  If unsure, say Y.
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ciconfig NFS_V3_ACL
5462306a36Sopenharmony_ci	bool "NFS client support for the NFSv3 ACL protocol extension"
5562306a36Sopenharmony_ci	depends on NFS_V3
5662306a36Sopenharmony_ci	help
5762306a36Sopenharmony_ci	  Some NFS servers support an auxiliary NFSv3 ACL protocol that
5862306a36Sopenharmony_ci	  Sun added to Solaris but never became an official part of the
5962306a36Sopenharmony_ci	  NFS version 3 protocol.  This protocol extension allows
6062306a36Sopenharmony_ci	  applications on NFS clients to manipulate POSIX Access Control
6162306a36Sopenharmony_ci	  Lists on files residing on NFS servers.  NFS servers enforce
6262306a36Sopenharmony_ci	  ACLs on local files whether this protocol is available or not.
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ci	  Choose Y here if your NFS server supports the Solaris NFSv3 ACL
6562306a36Sopenharmony_ci	  protocol extension and you want your NFS client to allow
6662306a36Sopenharmony_ci	  applications to access and modify ACLs on files on the server.
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ci	  Most NFS servers don't support the Solaris NFSv3 ACL protocol
6962306a36Sopenharmony_ci	  extension.  You can choose N here or specify the "noacl" mount
7062306a36Sopenharmony_ci	  option to prevent your NFS client from trying to use the NFSv3
7162306a36Sopenharmony_ci	  ACL protocol.
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ci	  If unsure, say N.
7462306a36Sopenharmony_ci
7562306a36Sopenharmony_ciconfig NFS_V4
7662306a36Sopenharmony_ci	tristate "NFS client support for NFS version 4"
7762306a36Sopenharmony_ci	depends on NFS_FS
7862306a36Sopenharmony_ci	select KEYS
7962306a36Sopenharmony_ci	help
8062306a36Sopenharmony_ci	  This option enables support for version 4 of the NFS protocol
8162306a36Sopenharmony_ci	  (RFC 3530) in the kernel's NFS client.
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ci	  To mount NFS servers using NFSv4, you also need to install user
8462306a36Sopenharmony_ci	  space programs which can be found in the Linux nfs-utils package,
8562306a36Sopenharmony_ci	  available from http://linux-nfs.org/.
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_ci	  If unsure, say Y.
8862306a36Sopenharmony_ci
8962306a36Sopenharmony_ciconfig NFS_SWAP
9062306a36Sopenharmony_ci	bool "Provide swap over NFS support"
9162306a36Sopenharmony_ci	default n
9262306a36Sopenharmony_ci	depends on NFS_FS && SWAP
9362306a36Sopenharmony_ci	select SUNRPC_SWAP
9462306a36Sopenharmony_ci	help
9562306a36Sopenharmony_ci	  This option enables swapon to work on files located on NFS mounts.
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ciconfig NFS_V4_1
9862306a36Sopenharmony_ci	bool "NFS client support for NFSv4.1"
9962306a36Sopenharmony_ci	depends on NFS_V4
10062306a36Sopenharmony_ci	select SUNRPC_BACKCHANNEL
10162306a36Sopenharmony_ci	help
10262306a36Sopenharmony_ci	  This option enables support for minor version 1 of the NFSv4 protocol
10362306a36Sopenharmony_ci	  (RFC 5661) in the kernel's NFS client.
10462306a36Sopenharmony_ci
10562306a36Sopenharmony_ci	  If unsure, say N.
10662306a36Sopenharmony_ci
10762306a36Sopenharmony_ciconfig NFS_V4_2
10862306a36Sopenharmony_ci	bool "NFS client support for NFSv4.2"
10962306a36Sopenharmony_ci	depends on NFS_V4_1
11062306a36Sopenharmony_ci	help
11162306a36Sopenharmony_ci	  This option enables support for minor version 2 of the NFSv4 protocol
11262306a36Sopenharmony_ci	  in the kernel's NFS client.
11362306a36Sopenharmony_ci
11462306a36Sopenharmony_ci	  If unsure, say N.
11562306a36Sopenharmony_ci
11662306a36Sopenharmony_ciconfig PNFS_FILE_LAYOUT
11762306a36Sopenharmony_ci	tristate
11862306a36Sopenharmony_ci	depends on NFS_V4_1
11962306a36Sopenharmony_ci	default NFS_V4
12062306a36Sopenharmony_ci
12162306a36Sopenharmony_ciconfig PNFS_BLOCK
12262306a36Sopenharmony_ci	tristate
12362306a36Sopenharmony_ci	depends on NFS_V4_1 && BLK_DEV_DM
12462306a36Sopenharmony_ci	default NFS_V4
12562306a36Sopenharmony_ci
12662306a36Sopenharmony_ciconfig PNFS_FLEXFILE_LAYOUT
12762306a36Sopenharmony_ci	tristate
12862306a36Sopenharmony_ci	depends on NFS_V4_1 && NFS_V3
12962306a36Sopenharmony_ci	default NFS_V4
13062306a36Sopenharmony_ci
13162306a36Sopenharmony_ciconfig NFS_V4_1_IMPLEMENTATION_ID_DOMAIN
13262306a36Sopenharmony_ci	string "NFSv4.1 Implementation ID Domain"
13362306a36Sopenharmony_ci	depends on NFS_V4_1
13462306a36Sopenharmony_ci	default "kernel.org"
13562306a36Sopenharmony_ci	help
13662306a36Sopenharmony_ci	  This option defines the domain portion of the implementation ID that
13762306a36Sopenharmony_ci	  may be sent in the NFS exchange_id operation.  The value must be in
13862306a36Sopenharmony_ci	  the format of a DNS domain name and should be set to the DNS domain
13962306a36Sopenharmony_ci	  name of the distribution.
14062306a36Sopenharmony_ci	  If the NFS client is unchanged from the upstream kernel, this
14162306a36Sopenharmony_ci	  option should be set to the default "kernel.org".
14262306a36Sopenharmony_ci
14362306a36Sopenharmony_ciconfig NFS_V4_1_MIGRATION
14462306a36Sopenharmony_ci	bool "NFSv4.1 client support for migration"
14562306a36Sopenharmony_ci	depends on NFS_V4_1
14662306a36Sopenharmony_ci	default n
14762306a36Sopenharmony_ci	help
14862306a36Sopenharmony_ci	  This option makes the NFS client advertise to NFSv4.1 servers that
14962306a36Sopenharmony_ci          it can support NFSv4 migration.
15062306a36Sopenharmony_ci
15162306a36Sopenharmony_ci          The NFSv4.1 pieces of the Linux NFSv4 migration implementation are
15262306a36Sopenharmony_ci          still experimental.  If you are not an NFSv4 developer, say N here.
15362306a36Sopenharmony_ci
15462306a36Sopenharmony_ciconfig NFS_V4_SECURITY_LABEL
15562306a36Sopenharmony_ci	bool
15662306a36Sopenharmony_ci	depends on NFS_V4_2 && SECURITY
15762306a36Sopenharmony_ci	default y
15862306a36Sopenharmony_ci
15962306a36Sopenharmony_ciconfig ROOT_NFS
16062306a36Sopenharmony_ci	bool "Root file system on NFS"
16162306a36Sopenharmony_ci	depends on NFS_FS=y && IP_PNP
16262306a36Sopenharmony_ci	help
16362306a36Sopenharmony_ci	  If you want your system to mount its root file system via NFS,
16462306a36Sopenharmony_ci	  choose Y here.  This is common practice for managing systems
16562306a36Sopenharmony_ci	  without local permanent storage.  For details, read
16662306a36Sopenharmony_ci	  <file:Documentation/admin-guide/nfs/nfsroot.rst>.
16762306a36Sopenharmony_ci
16862306a36Sopenharmony_ci	  Most people say N here.
16962306a36Sopenharmony_ci
17062306a36Sopenharmony_ciconfig NFS_FSCACHE
17162306a36Sopenharmony_ci	bool "Provide NFS client caching support"
17262306a36Sopenharmony_ci	depends on NFS_FS=m && FSCACHE || NFS_FS=y && FSCACHE=y
17362306a36Sopenharmony_ci	select NETFS_SUPPORT
17462306a36Sopenharmony_ci	help
17562306a36Sopenharmony_ci	  Say Y here if you want NFS data to be cached locally on disc through
17662306a36Sopenharmony_ci	  the general filesystem cache manager
17762306a36Sopenharmony_ci
17862306a36Sopenharmony_ciconfig NFS_USE_LEGACY_DNS
17962306a36Sopenharmony_ci	bool "Use the legacy NFS DNS resolver"
18062306a36Sopenharmony_ci	depends on NFS_V4
18162306a36Sopenharmony_ci	help
18262306a36Sopenharmony_ci	  The kernel now provides a method for translating a host name into an
18362306a36Sopenharmony_ci	  IP address.  Select Y here if you would rather use your own DNS
18462306a36Sopenharmony_ci	  resolver script.
18562306a36Sopenharmony_ci
18662306a36Sopenharmony_ci	  If unsure, say N
18762306a36Sopenharmony_ci
18862306a36Sopenharmony_ciconfig NFS_USE_KERNEL_DNS
18962306a36Sopenharmony_ci	bool
19062306a36Sopenharmony_ci	depends on NFS_V4 && !NFS_USE_LEGACY_DNS
19162306a36Sopenharmony_ci	select DNS_RESOLVER
19262306a36Sopenharmony_ci	default y
19362306a36Sopenharmony_ci
19462306a36Sopenharmony_ciconfig NFS_DEBUG
19562306a36Sopenharmony_ci	bool
19662306a36Sopenharmony_ci	depends on NFS_FS && SUNRPC_DEBUG
19762306a36Sopenharmony_ci	select CRC32
19862306a36Sopenharmony_ci	default y
19962306a36Sopenharmony_ci
20062306a36Sopenharmony_ciconfig NFS_DISABLE_UDP_SUPPORT
20162306a36Sopenharmony_ci       bool "NFS: Disable NFS UDP protocol support"
20262306a36Sopenharmony_ci       depends on NFS_FS
20362306a36Sopenharmony_ci       default y
20462306a36Sopenharmony_ci       help
20562306a36Sopenharmony_ci	 Choose Y here to disable the use of NFS over UDP. NFS over UDP
20662306a36Sopenharmony_ci	 on modern networks (1Gb+) can lead to data corruption caused by
20762306a36Sopenharmony_ci	 fragmentation during high loads.
20862306a36Sopenharmony_ci
20962306a36Sopenharmony_ciconfig NFS_V4_2_READ_PLUS
21062306a36Sopenharmony_ci	bool "NFS: Enable support for the NFSv4.2 READ_PLUS operation"
21162306a36Sopenharmony_ci	depends on NFS_V4_2
21262306a36Sopenharmony_ci	default y
21362306a36Sopenharmony_ci	help
21462306a36Sopenharmony_ci	 Choose Y here to enable use of the NFS v4.2 READ_PLUS operation.
215