0001 # SPDX-License-Identifier: GPL-2.0-only
0002 config NFS_FS
0003 tristate "NFS client support"
0004 depends on INET && FILE_LOCKING && MULTIUSER
0005 select LOCKD
0006 select SUNRPC
0007 select NFS_ACL_SUPPORT if NFS_V3_ACL
0008 help
0009 Choose Y here if you want to access files residing on other
0010 computers using Sun's Network File System protocol. To compile
0011 this file system support as a module, choose M here: the module
0012 will be called nfs.
0013
0014 To mount file systems exported by NFS servers, you also need to
0015 install the user space mount.nfs command which can be found in
0016 the Linux nfs-utils package, available from http://linux-nfs.org/.
0017 Information about using the mount command is available in the
0018 mount(8) man page. More detail about the Linux NFS client
0019 implementation is available via the nfs(5) man page.
0020
0021 Below you can choose which versions of the NFS protocol are
0022 available in the kernel to mount NFS servers. Support for NFS
0023 version 2 (RFC 1094) is always available when NFS_FS is selected.
0024
0025 To configure a system which mounts its root file system via NFS
0026 at boot time, say Y here, select "Kernel level IP
0027 autoconfiguration" in the NETWORK menu, and select "Root file
0028 system on NFS" below. You cannot compile this file system as a
0029 module in this case.
0030
0031 If unsure, say N.
0032
0033 config NFS_V2
0034 tristate "NFS client support for NFS version 2"
0035 depends on NFS_FS
0036 default y
0037 help
0038 This option enables support for version 2 of the NFS protocol
0039 (RFC 1094) in the kernel's NFS client.
0040
0041 If unsure, say Y.
0042
0043 config NFS_V3
0044 tristate "NFS client support for NFS version 3"
0045 depends on NFS_FS
0046 default y
0047 help
0048 This option enables support for version 3 of the NFS protocol
0049 (RFC 1813) in the kernel's NFS client.
0050
0051 If unsure, say Y.
0052
0053 config NFS_V3_ACL
0054 bool "NFS client support for the NFSv3 ACL protocol extension"
0055 depends on NFS_V3
0056 help
0057 Some NFS servers support an auxiliary NFSv3 ACL protocol that
0058 Sun added to Solaris but never became an official part of the
0059 NFS version 3 protocol. This protocol extension allows
0060 applications on NFS clients to manipulate POSIX Access Control
0061 Lists on files residing on NFS servers. NFS servers enforce
0062 ACLs on local files whether this protocol is available or not.
0063
0064 Choose Y here if your NFS server supports the Solaris NFSv3 ACL
0065 protocol extension and you want your NFS client to allow
0066 applications to access and modify ACLs on files on the server.
0067
0068 Most NFS servers don't support the Solaris NFSv3 ACL protocol
0069 extension. You can choose N here or specify the "noacl" mount
0070 option to prevent your NFS client from trying to use the NFSv3
0071 ACL protocol.
0072
0073 If unsure, say N.
0074
0075 config NFS_V4
0076 tristate "NFS client support for NFS version 4"
0077 depends on NFS_FS
0078 select SUNRPC_GSS
0079 select KEYS
0080 help
0081 This option enables support for version 4 of the NFS protocol
0082 (RFC 3530) in the kernel's NFS client.
0083
0084 To mount NFS servers using NFSv4, you also need to install user
0085 space programs which can be found in the Linux nfs-utils package,
0086 available from http://linux-nfs.org/.
0087
0088 If unsure, say Y.
0089
0090 config NFS_SWAP
0091 bool "Provide swap over NFS support"
0092 default n
0093 depends on NFS_FS && SWAP
0094 select SUNRPC_SWAP
0095 help
0096 This option enables swapon to work on files located on NFS mounts.
0097
0098 config NFS_V4_1
0099 bool "NFS client support for NFSv4.1"
0100 depends on NFS_V4
0101 select SUNRPC_BACKCHANNEL
0102 help
0103 This option enables support for minor version 1 of the NFSv4 protocol
0104 (RFC 5661) in the kernel's NFS client.
0105
0106 If unsure, say N.
0107
0108 config NFS_V4_2
0109 bool "NFS client support for NFSv4.2"
0110 depends on NFS_V4_1
0111 help
0112 This option enables support for minor version 2 of the NFSv4 protocol
0113 in the kernel's NFS client.
0114
0115 If unsure, say N.
0116
0117 config PNFS_FILE_LAYOUT
0118 tristate
0119 depends on NFS_V4_1
0120 default NFS_V4
0121
0122 config PNFS_BLOCK
0123 tristate
0124 depends on NFS_V4_1 && BLK_DEV_DM
0125 default NFS_V4
0126
0127 config PNFS_FLEXFILE_LAYOUT
0128 tristate
0129 depends on NFS_V4_1 && NFS_V3
0130 default NFS_V4
0131
0132 config NFS_V4_1_IMPLEMENTATION_ID_DOMAIN
0133 string "NFSv4.1 Implementation ID Domain"
0134 depends on NFS_V4_1
0135 default "kernel.org"
0136 help
0137 This option defines the domain portion of the implementation ID that
0138 may be sent in the NFS exchange_id operation. The value must be in
0139 the format of a DNS domain name and should be set to the DNS domain
0140 name of the distribution.
0141 If the NFS client is unchanged from the upstream kernel, this
0142 option should be set to the default "kernel.org".
0143
0144 config NFS_V4_1_MIGRATION
0145 bool "NFSv4.1 client support for migration"
0146 depends on NFS_V4_1
0147 default n
0148 help
0149 This option makes the NFS client advertise to NFSv4.1 servers that
0150 it can support NFSv4 migration.
0151
0152 The NFSv4.1 pieces of the Linux NFSv4 migration implementation are
0153 still experimental. If you are not an NFSv4 developer, say N here.
0154
0155 config NFS_V4_SECURITY_LABEL
0156 bool
0157 depends on NFS_V4_2 && SECURITY
0158 default y
0159
0160 config ROOT_NFS
0161 bool "Root file system on NFS"
0162 depends on NFS_FS=y && IP_PNP
0163 help
0164 If you want your system to mount its root file system via NFS,
0165 choose Y here. This is common practice for managing systems
0166 without local permanent storage. For details, read
0167 <file:Documentation/admin-guide/nfs/nfsroot.rst>.
0168
0169 Most people say N here.
0170
0171 config NFS_FSCACHE
0172 bool "Provide NFS client caching support"
0173 depends on NFS_FS=m && FSCACHE || NFS_FS=y && FSCACHE=y
0174 help
0175 Say Y here if you want NFS data to be cached locally on disc through
0176 the general filesystem cache manager
0177
0178 config NFS_USE_LEGACY_DNS
0179 bool "Use the legacy NFS DNS resolver"
0180 depends on NFS_V4
0181 help
0182 The kernel now provides a method for translating a host name into an
0183 IP address. Select Y here if you would rather use your own DNS
0184 resolver script.
0185
0186 If unsure, say N
0187
0188 config NFS_USE_KERNEL_DNS
0189 bool
0190 depends on NFS_V4 && !NFS_USE_LEGACY_DNS
0191 select DNS_RESOLVER
0192 default y
0193
0194 config NFS_DEBUG
0195 bool
0196 depends on NFS_FS && SUNRPC_DEBUG
0197 select CRC32
0198 default y
0199
0200 config NFS_DISABLE_UDP_SUPPORT
0201 bool "NFS: Disable NFS UDP protocol support"
0202 depends on NFS_FS
0203 default y
0204 help
0205 Choose Y here to disable the use of NFS over UDP. NFS over UDP
0206 on modern networks (1Gb+) can lead to data corruption caused by
0207 fragmentation during high loads.
0208
0209 config NFS_V4_2_READ_PLUS
0210 bool "NFS: Enable support for the NFSv4.2 READ_PLUS operation"
0211 depends on NFS_V4_2
0212 default n
0213 help
0214 This is intended for developers only. The READ_PLUS operation has
0215 been shown to have issues under specific conditions and should not
0216 be used in production.