xref: /linux/fs/nfsd/Kconfig (revision ec8f24b7faaf3d4799a7c3f4c1b87f6b02778ad1)
1*ec8f24b7SThomas 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
6e2b329e2SAlexey Dobriyan	select LOCKD
7e2b329e2SAlexey Dobriyan	select SUNRPC
8e2b329e2SAlexey Dobriyan	select EXPORTFS
9e2b329e2SAlexey Dobriyan	select NFS_ACL_SUPPORT if NFSD_V2_ACL
102813893fSIulia Manda	depends on MULTIUSER
11e2b329e2SAlexey Dobriyan	help
12e2b329e2SAlexey Dobriyan	  Choose Y here if you want to allow other computers to access
13e2b329e2SAlexey Dobriyan	  files residing on this system using Sun's Network File System
14e2b329e2SAlexey Dobriyan	  protocol.  To compile the NFS server support as a module,
15e2b329e2SAlexey Dobriyan	  choose M here: the module will be called nfsd.
16e2b329e2SAlexey Dobriyan
17e2b329e2SAlexey Dobriyan	  You may choose to use a user-space NFS server instead, in which
18e2b329e2SAlexey Dobriyan	  case you can choose N here.
19e2b329e2SAlexey Dobriyan
20e2b329e2SAlexey Dobriyan	  To export local file systems using NFS, you also need to install
21e2b329e2SAlexey Dobriyan	  user space programs which can be found in the Linux nfs-utils
22e2b329e2SAlexey Dobriyan	  package, available from http://linux-nfs.org/.  More detail about
23e2b329e2SAlexey Dobriyan	  the Linux NFS server implementation is available via the
24e2b329e2SAlexey Dobriyan	  exports(5) man page.
25e2b329e2SAlexey Dobriyan
26e2b329e2SAlexey Dobriyan	  Below you can choose which versions of the NFS protocol are
27e2b329e2SAlexey Dobriyan	  available to clients mounting the NFS server on this system.
28e2b329e2SAlexey Dobriyan	  Support for NFS version 2 (RFC 1094) is always available when
29e2b329e2SAlexey Dobriyan	  CONFIG_NFSD is selected.
30e2b329e2SAlexey Dobriyan
31e2b329e2SAlexey Dobriyan	  If unsure, say N.
32e2b329e2SAlexey Dobriyan
33e2b329e2SAlexey Dobriyanconfig NFSD_V2_ACL
34e2b329e2SAlexey Dobriyan	bool
35e2b329e2SAlexey Dobriyan	depends on NFSD
36e2b329e2SAlexey Dobriyan
37e2b329e2SAlexey Dobriyanconfig NFSD_V3
38e2b329e2SAlexey Dobriyan	bool "NFS server support for NFS version 3"
39e2b329e2SAlexey Dobriyan	depends on NFSD
40e2b329e2SAlexey Dobriyan	help
41e2b329e2SAlexey Dobriyan	  This option enables support in your system's NFS server for
42e2b329e2SAlexey Dobriyan	  version 3 of the NFS protocol (RFC 1813).
43e2b329e2SAlexey Dobriyan
44e2b329e2SAlexey Dobriyan	  If unsure, say Y.
45e2b329e2SAlexey Dobriyan
46e2b329e2SAlexey Dobriyanconfig NFSD_V3_ACL
47e2b329e2SAlexey Dobriyan	bool "NFS server support for the NFSv3 ACL protocol extension"
48e2b329e2SAlexey Dobriyan	depends on NFSD_V3
49e2b329e2SAlexey Dobriyan	select NFSD_V2_ACL
50e2b329e2SAlexey Dobriyan	help
51e2b329e2SAlexey Dobriyan	  Solaris NFS servers support an auxiliary NFSv3 ACL protocol that
52e2b329e2SAlexey Dobriyan	  never became an official part of the NFS version 3 protocol.
53e2b329e2SAlexey Dobriyan	  This protocol extension allows applications on NFS clients to
54e2b329e2SAlexey Dobriyan	  manipulate POSIX Access Control Lists on files residing on NFS
55e2b329e2SAlexey Dobriyan	  servers.  NFS servers enforce POSIX ACLs on local files whether
56e2b329e2SAlexey Dobriyan	  this protocol is available or not.
57e2b329e2SAlexey Dobriyan
58e2b329e2SAlexey Dobriyan	  This option enables support in your system's NFS server for the
59e2b329e2SAlexey Dobriyan	  NFSv3 ACL protocol extension allowing NFS clients to manipulate
60e2b329e2SAlexey Dobriyan	  POSIX ACLs on files exported by your system's NFS server.  NFS
61e2b329e2SAlexey Dobriyan	  clients which support the Solaris NFSv3 ACL protocol can then
62e2b329e2SAlexey Dobriyan	  access and modify ACLs on your NFS server.
63e2b329e2SAlexey Dobriyan
64e2b329e2SAlexey Dobriyan	  To store ACLs on your NFS server, you also need to enable ACL-
65e2b329e2SAlexey Dobriyan	  related CONFIG options for your local file systems of choice.
66e2b329e2SAlexey Dobriyan
67e2b329e2SAlexey Dobriyan	  If unsure, say N.
68e2b329e2SAlexey Dobriyan
69e2b329e2SAlexey Dobriyanconfig NFSD_V4
70f987c902SKees Cook	bool "NFS server support for NFS version 4"
71f987c902SKees Cook	depends on NFSD && PROC_FS
72e2b329e2SAlexey Dobriyan	select NFSD_V3
73e2b329e2SAlexey Dobriyan	select FS_POSIX_ACL
74827e3457STrond Myklebust	select SUNRPC_GSS
75be1f4084SRandy Dunlap	select CRYPTO
76f7790029SJeff Layton	select GRACE_PERIOD
77e2b329e2SAlexey Dobriyan	help
78e2b329e2SAlexey Dobriyan	  This option enables support in your system's NFS server for
79e2b329e2SAlexey Dobriyan	  version 4 of the NFS protocol (RFC 3530).
80e2b329e2SAlexey Dobriyan
81e2b329e2SAlexey Dobriyan	  To export files using NFSv4, you need to install additional user
82e2b329e2SAlexey Dobriyan	  space programs which can be found in the Linux nfs-utils package,
83e2b329e2SAlexey Dobriyan	  available from http://linux-nfs.org/.
84e2b329e2SAlexey Dobriyan
85e2b329e2SAlexey Dobriyan	  If unsure, say N.
8665178db4SBryan Schumaker
879cf514ccSChristoph Hellwigconfig NFSD_PNFS
8881c39329SChristoph Hellwig	bool
8981c39329SChristoph Hellwig
9081c39329SChristoph Hellwigconfig NFSD_BLOCKLAYOUT
9181c39329SChristoph Hellwig	bool "NFSv4.1 server support for pNFS block layouts"
9210c4de10SChristoph Hellwig	depends on NFSD_V4 && BLOCK
9381c39329SChristoph Hellwig	select NFSD_PNFS
9415d66ac2SBenjamin Coddington	select EXPORTFS_BLOCK_OPS
959cf514ccSChristoph Hellwig	help
9681c39329SChristoph Hellwig	  This option enables support for the exporting pNFS block layouts
9781c39329SChristoph Hellwig	  in the kernel's NFS server. The pNFS block layout enables NFS
9881c39329SChristoph Hellwig	  clients to directly perform I/O to block devices accesible to both
9981c39329SChristoph Hellwig	  the server and the clients.  See RFC 5663 for more details.
1009cf514ccSChristoph Hellwig
1019cf514ccSChristoph Hellwig	  If unsure, say N.
1029cf514ccSChristoph Hellwig
103f99d4fbdSChristoph Hellwigconfig NFSD_SCSILAYOUT
104f99d4fbdSChristoph Hellwig	bool "NFSv4.1 server support for pNFS SCSI layouts"
10510c4de10SChristoph Hellwig	depends on NFSD_V4 && BLOCK
106f99d4fbdSChristoph Hellwig	select NFSD_PNFS
10715d66ac2SBenjamin Coddington	select EXPORTFS_BLOCK_OPS
10872148aecSChristoph Hellwig	select BLK_SCSI_REQUEST
109f99d4fbdSChristoph Hellwig	help
110f99d4fbdSChristoph Hellwig	  This option enables support for the exporting pNFS SCSI layouts
111f99d4fbdSChristoph Hellwig	  in the kernel's NFS server. The pNFS SCSI layout enables NFS
112f99d4fbdSChristoph Hellwig	  clients to directly perform I/O to SCSI devices accesible to both
113f99d4fbdSChristoph Hellwig	  the server and the clients.  See draft-ietf-nfsv4-scsi-layout for
114f99d4fbdSChristoph Hellwig	  more details.
115f99d4fbdSChristoph Hellwig
116f99d4fbdSChristoph Hellwig	  If unsure, say N.
117f99d4fbdSChristoph Hellwig
1189b9960a0STom Haynesconfig NFSD_FLEXFILELAYOUT
1199b9960a0STom Haynes	bool "NFSv4.1 server support for pNFS Flex File layouts"
1209b9960a0STom Haynes	depends on NFSD_V4
1219b9960a0STom Haynes	select NFSD_PNFS
1229b9960a0STom Haynes	help
1239b9960a0STom Haynes	  This option enables support for the exporting pNFS Flex File
1249b9960a0STom Haynes	  layouts in the kernel's NFS server. The pNFS Flex File  layout
1259b9960a0STom Haynes	  enables NFS clients to directly perform I/O to NFSv3 devices
1269b9960a0STom Haynes	  accesible to both the server and the clients.  See
1279b9960a0STom Haynes	  draft-ietf-nfsv4-flex-files for more details.
1289b9960a0STom Haynes
1299b9960a0STom Haynes	  Warning, this server implements the bare minimum functionality
1309b9960a0STom Haynes	  to be a flex file server - it is for testing the client,
1319b9960a0STom Haynes	  not for use in production.
1329b9960a0STom Haynes
1339b9960a0STom Haynes	  If unsure, say N.
1349b9960a0STom Haynes
13518032ca0SDavid Quigleyconfig NFSD_V4_SECURITY_LABEL
13618032ca0SDavid Quigley	bool "Provide Security Label support for NFSv4 server"
13718032ca0SDavid Quigley	depends on NFSD_V4 && SECURITY
13818032ca0SDavid Quigley	help
13918032ca0SDavid Quigley
14018032ca0SDavid Quigley	Say Y here if you want enable fine-grained security label attribute
14118032ca0SDavid Quigley	support for NFS version 4.  Security labels allow security modules like
14218032ca0SDavid Quigley	SELinux and Smack to label files to facilitate enforcement of their policies.
14318032ca0SDavid Quigley	Without this an NFSv4 mount will have the same label on each file.
14418032ca0SDavid Quigley
14518032ca0SDavid Quigley	If you do not wish to enable fine-grained security labels SELinux or
14618032ca0SDavid Quigley	Smack policies on NFSv4 files, say N.
14718032ca0SDavid Quigley
14865178db4SBryan Schumakerconfig NFSD_FAULT_INJECTION
14965178db4SBryan Schumaker	bool "NFS server manual fault injection"
150629b8729SChengyu Song	depends on NFSD_V4 && DEBUG_KERNEL && DEBUG_FS
15165178db4SBryan Schumaker	help
15265178db4SBryan Schumaker	  This option enables support for manually injecting faults
15365178db4SBryan Schumaker	  into the NFS server.  This is intended to be used for
15465178db4SBryan Schumaker	  testing error recovery on the NFS client.
15565178db4SBryan Schumaker
15665178db4SBryan Schumaker	  If unsure, say N.
157