xref: /linux/fs/nfsd/Kconfig (revision 81538c8e42806eed71ce125723877a7c2307370c)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
2e2b329e2SAlexey Dobriyanconfig NFSD
3e2b329e2SAlexey Dobriyan	tristate "NFS server support"
4e2b329e2SAlexey Dobriyan	depends on INET
568666561SManish Katiyar	depends on FILE_LOCKING
665294c1fSJeff Layton	depends on FSNOTIFY
7cd35b6cbSEric Biggers	select CRC32
8*13289ed5SEric Biggers	select CRYPTO_LIB_SHA256 if NFSD_V4
9e2b329e2SAlexey Dobriyan	select LOCKD
10e2b329e2SAlexey Dobriyan	select SUNRPC
11e2b329e2SAlexey Dobriyan	select EXPORTFS
124806ded4SMike Snitzer	select NFS_COMMON
13e2b329e2SAlexey Dobriyan	select NFS_ACL_SUPPORT if NFSD_V2_ACL
142f3a4b2aSJeff Layton	select NFS_ACL_SUPPORT if NFSD_V3_ACL
152813893fSIulia Manda	depends on MULTIUSER
16e2b329e2SAlexey Dobriyan	help
17e2b329e2SAlexey Dobriyan	  Choose Y here if you want to allow other computers to access
18e2b329e2SAlexey Dobriyan	  files residing on this system using Sun's Network File System
19e2b329e2SAlexey Dobriyan	  protocol.  To compile the NFS server support as a module,
20e2b329e2SAlexey Dobriyan	  choose M here: the module will be called nfsd.
21e2b329e2SAlexey Dobriyan
22e2b329e2SAlexey Dobriyan	  You may choose to use a user-space NFS server instead, in which
23e2b329e2SAlexey Dobriyan	  case you can choose N here.
24e2b329e2SAlexey Dobriyan
25e2b329e2SAlexey Dobriyan	  To export local file systems using NFS, you also need to install
26e2b329e2SAlexey Dobriyan	  user space programs which can be found in the Linux nfs-utils
27e2b329e2SAlexey Dobriyan	  package, available from http://linux-nfs.org/.  More detail about
28e2b329e2SAlexey Dobriyan	  the Linux NFS server implementation is available via the
29e2b329e2SAlexey Dobriyan	  exports(5) man page.
30e2b329e2SAlexey Dobriyan
31e2b329e2SAlexey Dobriyan	  Below you can choose which versions of the NFS protocol are
32e2b329e2SAlexey Dobriyan	  available to clients mounting the NFS server on this system.
332f3a4b2aSJeff Layton	  Support for NFS version 3 (RFC 1813) is always available when
34e2b329e2SAlexey Dobriyan	  CONFIG_NFSD is selected.
35e2b329e2SAlexey Dobriyan
36e2b329e2SAlexey Dobriyan	  If unsure, say N.
37e2b329e2SAlexey Dobriyan
382f3a4b2aSJeff Laytonconfig NFSD_V2
392f3a4b2aSJeff Layton	bool "NFS server support for NFS version 2 (DEPRECATED)"
40e2b329e2SAlexey Dobriyan	depends on NFSD
412f3a4b2aSJeff Layton	default n
422f3a4b2aSJeff Layton	help
432f3a4b2aSJeff Layton	  NFSv2 (RFC 1094) was the first publicly-released version of NFS.
442f3a4b2aSJeff Layton	  Unless you are hosting ancient (1990's era) NFS clients, you don't
452f3a4b2aSJeff Layton	  need this.
462f3a4b2aSJeff Layton
472f3a4b2aSJeff Layton	  If unsure, say N.
482f3a4b2aSJeff Layton
492f3a4b2aSJeff Laytonconfig NFSD_V2_ACL
502f3a4b2aSJeff Layton	bool "NFS server support for the NFSv2 ACL protocol extension"
512f3a4b2aSJeff Layton	depends on NFSD_V2
52e2b329e2SAlexey Dobriyan
53e2b329e2SAlexey Dobriyanconfig NFSD_V3_ACL
54e2b329e2SAlexey Dobriyan	bool "NFS server support for the NFSv3 ACL protocol extension"
555f9a62ffSChuck Lever	depends on NFSD
56e2b329e2SAlexey Dobriyan	help
57e2b329e2SAlexey Dobriyan	  Solaris NFS servers support an auxiliary NFSv3 ACL protocol that
58e2b329e2SAlexey Dobriyan	  never became an official part of the NFS version 3 protocol.
59e2b329e2SAlexey Dobriyan	  This protocol extension allows applications on NFS clients to
60e2b329e2SAlexey Dobriyan	  manipulate POSIX Access Control Lists on files residing on NFS
61e2b329e2SAlexey Dobriyan	  servers.  NFS servers enforce POSIX ACLs on local files whether
62e2b329e2SAlexey Dobriyan	  this protocol is available or not.
63e2b329e2SAlexey Dobriyan
64e2b329e2SAlexey Dobriyan	  This option enables support in your system's NFS server for the
65e2b329e2SAlexey Dobriyan	  NFSv3 ACL protocol extension allowing NFS clients to manipulate
66e2b329e2SAlexey Dobriyan	  POSIX ACLs on files exported by your system's NFS server.  NFS
67e2b329e2SAlexey Dobriyan	  clients which support the Solaris NFSv3 ACL protocol can then
68e2b329e2SAlexey Dobriyan	  access and modify ACLs on your NFS server.
69e2b329e2SAlexey Dobriyan
70e2b329e2SAlexey Dobriyan	  To store ACLs on your NFS server, you also need to enable ACL-
71e2b329e2SAlexey Dobriyan	  related CONFIG options for your local file systems of choice.
72e2b329e2SAlexey Dobriyan
73e2b329e2SAlexey Dobriyan	  If unsure, say N.
74e2b329e2SAlexey Dobriyan
75e2b329e2SAlexey Dobriyanconfig NFSD_V4
76f987c902SKees Cook	bool "NFS server support for NFS version 4"
77f987c902SKees Cook	depends on NFSD && PROC_FS
78e2b329e2SAlexey Dobriyan	select FS_POSIX_ACL
79e57d0652SChuck Lever	select RPCSEC_GSS_KRB5
8070052273SJulian Braha	select CRYPTO
8138a2204fSPatrick Steinhardt	select CRYPTO_MD5
82f7790029SJeff Layton	select GRACE_PERIOD
8302591f9fSDai Ngo	select NFS_V4_2_SSC_HELPER if NFS_V4_2
84e2b329e2SAlexey Dobriyan	help
85e2b329e2SAlexey Dobriyan	  This option enables support in your system's NFS server for
86e2b329e2SAlexey Dobriyan	  version 4 of the NFS protocol (RFC 3530).
87e2b329e2SAlexey Dobriyan
88e2b329e2SAlexey Dobriyan	  To export files using NFSv4, you need to install additional user
89e2b329e2SAlexey Dobriyan	  space programs which can be found in the Linux nfs-utils package,
90e2b329e2SAlexey Dobriyan	  available from http://linux-nfs.org/.
91e2b329e2SAlexey Dobriyan
92e2b329e2SAlexey Dobriyan	  If unsure, say N.
9365178db4SBryan Schumaker
949cf514ccSChristoph Hellwigconfig NFSD_PNFS
9581c39329SChristoph Hellwig	bool
9681c39329SChristoph Hellwig
9781c39329SChristoph Hellwigconfig NFSD_BLOCKLAYOUT
9881c39329SChristoph Hellwig	bool "NFSv4.1 server support for pNFS block layouts"
9910c4de10SChristoph Hellwig	depends on NFSD_V4 && BLOCK
10081c39329SChristoph Hellwig	select NFSD_PNFS
10115d66ac2SBenjamin Coddington	select EXPORTFS_BLOCK_OPS
1029cf514ccSChristoph Hellwig	help
10381c39329SChristoph Hellwig	  This option enables support for the exporting pNFS block layouts
10481c39329SChristoph Hellwig	  in the kernel's NFS server. The pNFS block layout enables NFS
10534a62493SRicardo Ribalda	  clients to directly perform I/O to block devices accessible to both
10681c39329SChristoph Hellwig	  the server and the clients.  See RFC 5663 for more details.
1079cf514ccSChristoph Hellwig
1089cf514ccSChristoph Hellwig	  If unsure, say N.
1099cf514ccSChristoph Hellwig
110f99d4fbdSChristoph Hellwigconfig NFSD_SCSILAYOUT
111f99d4fbdSChristoph Hellwig	bool "NFSv4.1 server support for pNFS SCSI layouts"
11210c4de10SChristoph Hellwig	depends on NFSD_V4 && BLOCK
113f99d4fbdSChristoph Hellwig	select NFSD_PNFS
11415d66ac2SBenjamin Coddington	select EXPORTFS_BLOCK_OPS
115f99d4fbdSChristoph Hellwig	help
116f99d4fbdSChristoph Hellwig	  This option enables support for the exporting pNFS SCSI layouts
117f99d4fbdSChristoph Hellwig	  in the kernel's NFS server. The pNFS SCSI layout enables NFS
11834a62493SRicardo Ribalda	  clients to directly perform I/O to SCSI devices accessible to both
119f99d4fbdSChristoph Hellwig	  the server and the clients.  See draft-ietf-nfsv4-scsi-layout for
120f99d4fbdSChristoph Hellwig	  more details.
121f99d4fbdSChristoph Hellwig
122f99d4fbdSChristoph Hellwig	  If unsure, say N.
123f99d4fbdSChristoph Hellwig
1249b9960a0STom Haynesconfig NFSD_FLEXFILELAYOUT
1259b9960a0STom Haynes	bool "NFSv4.1 server support for pNFS Flex File layouts"
1269b9960a0STom Haynes	depends on NFSD_V4
1279b9960a0STom Haynes	select NFSD_PNFS
1289b9960a0STom Haynes	help
1299b9960a0STom Haynes	  This option enables support for the exporting pNFS Flex File
1309b9960a0STom Haynes	  layouts in the kernel's NFS server. The pNFS Flex File  layout
1319b9960a0STom Haynes	  enables NFS clients to directly perform I/O to NFSv3 devices
13234a62493SRicardo Ribalda	  accessible to both the server and the clients.  See
1339b9960a0STom Haynes	  draft-ietf-nfsv4-flex-files for more details.
1349b9960a0STom Haynes
1359b9960a0STom Haynes	  Warning, this server implements the bare minimum functionality
1369b9960a0STom Haynes	  to be a flex file server - it is for testing the client,
1379b9960a0STom Haynes	  not for use in production.
1389b9960a0STom Haynes
1399b9960a0STom Haynes	  If unsure, say N.
1409b9960a0STom Haynes
141b9e8638eSOlga Kornievskaiaconfig NFSD_V4_2_INTER_SSC
142b9e8638eSOlga Kornievskaia	bool "NFSv4.2 inter server to server COPY"
143d9092b4bSDai Ngo	depends on NFSD_V4 && NFS_V4_2
144b9e8638eSOlga Kornievskaia	help
145b9e8638eSOlga Kornievskaia	  This option enables support for NFSv4.2 inter server to
146b9e8638eSOlga Kornievskaia	  server copy where the destination server calls the NFSv4.2
147b9e8638eSOlga Kornievskaia	  client to read the data to copy from the source server.
148b9e8638eSOlga Kornievskaia
149b9e8638eSOlga Kornievskaia	  If unsure, say N.
150b9e8638eSOlga Kornievskaia
15118032ca0SDavid Quigleyconfig NFSD_V4_SECURITY_LABEL
15218032ca0SDavid Quigley	bool "Provide Security Label support for NFSv4 server"
15318032ca0SDavid Quigley	depends on NFSD_V4 && SECURITY
15418032ca0SDavid Quigley	help
15518032ca0SDavid Quigley
15618032ca0SDavid Quigley	Say Y here if you want enable fine-grained security label attribute
15718032ca0SDavid Quigley	support for NFS version 4.  Security labels allow security modules like
15818032ca0SDavid Quigley	SELinux and Smack to label files to facilitate enforcement of their policies.
15918032ca0SDavid Quigley	Without this an NFSv4 mount will have the same label on each file.
16018032ca0SDavid Quigley
16118032ca0SDavid Quigley	If you do not wish to enable fine-grained security labels SELinux or
16218032ca0SDavid Quigley	Smack policies on NFSv4 files, say N.
16374fd4873SJeff Layton
16474fd4873SJeff Laytonconfig NFSD_LEGACY_CLIENT_TRACKING
16574fd4873SJeff Layton	bool "Support legacy NFSv4 client tracking methods (DEPRECATED)"
16674fd4873SJeff Layton	depends on NFSD_V4
16718a54506SChuck Lever	default y
16874fd4873SJeff Layton	help
16974fd4873SJeff Layton	  The NFSv4 server needs to store a small amount of information on
17074fd4873SJeff Layton	  stable storage in order to handle state recovery after reboot. Most
17174fd4873SJeff Layton	  modern deployments upcall to a userland daemon for this (nfsdcld),
17274fd4873SJeff Layton	  but older NFS servers may store information directly in a
17374fd4873SJeff Layton	  recoverydir, or spawn a process directly using a usermodehelper
17474fd4873SJeff Layton	  upcall.
17574fd4873SJeff Layton
17626a80762SChuck Lever	  These legacy client tracking methods have proven to be problematic
17774fd4873SJeff Layton	  and will be removed in the future. Say Y here if you need support
17874fd4873SJeff Layton	  for them in the interim.
17926a80762SChuck Lever
18026a80762SChuck Leverconfig NFSD_V4_DELEG_TIMESTAMPS
18126a80762SChuck Lever	bool "Support delegated timestamps"
18226a80762SChuck Lever	depends on NFSD_V4
18326a80762SChuck Lever	default n
18426a80762SChuck Lever	help
18526a80762SChuck Lever	  NFSD implements delegated timestamps according to
18626a80762SChuck Lever	  draft-ietf-nfsv4-delstid-08 "Extending the Opening of Files". This
18726a80762SChuck Lever	  is currently an experimental feature and is therefore left disabled
18826a80762SChuck Lever	  by default.
189