afs: Provide a splice-read wrapper
[linux-block.git] / fs / nfsd / Kconfig
1 # SPDX-License-Identifier: GPL-2.0-only
2 config NFSD
3         tristate "NFS server support"
4         depends on INET
5         depends on FILE_LOCKING
6         depends on FSNOTIFY
7         select LOCKD
8         select SUNRPC
9         select EXPORTFS
10         select NFS_ACL_SUPPORT if NFSD_V2_ACL
11         select NFS_ACL_SUPPORT if NFSD_V3_ACL
12         depends on MULTIUSER
13         help
14           Choose Y here if you want to allow other computers to access
15           files residing on this system using Sun's Network File System
16           protocol.  To compile the NFS server support as a module,
17           choose M here: the module will be called nfsd.
18
19           You may choose to use a user-space NFS server instead, in which
20           case you can choose N here.
21
22           To export local file systems using NFS, you also need to install
23           user space programs which can be found in the Linux nfs-utils
24           package, available from http://linux-nfs.org/.  More detail about
25           the Linux NFS server implementation is available via the
26           exports(5) man page.
27
28           Below you can choose which versions of the NFS protocol are
29           available to clients mounting the NFS server on this system.
30           Support for NFS version 3 (RFC 1813) is always available when
31           CONFIG_NFSD is selected.
32
33           If unsure, say N.
34
35 config NFSD_V2
36         bool "NFS server support for NFS version 2 (DEPRECATED)"
37         depends on NFSD
38         default n
39         help
40           NFSv2 (RFC 1094) was the first publicly-released version of NFS.
41           Unless you are hosting ancient (1990's era) NFS clients, you don't
42           need this.
43
44           If unsure, say N.
45
46 config NFSD_V2_ACL
47         bool "NFS server support for the NFSv2 ACL protocol extension"
48         depends on NFSD_V2
49
50 config NFSD_V3_ACL
51         bool "NFS server support for the NFSv3 ACL protocol extension"
52         depends on NFSD
53         help
54           Solaris NFS servers support an auxiliary NFSv3 ACL protocol that
55           never became an official part of the NFS version 3 protocol.
56           This protocol extension allows applications on NFS clients to
57           manipulate POSIX Access Control Lists on files residing on NFS
58           servers.  NFS servers enforce POSIX ACLs on local files whether
59           this protocol is available or not.
60
61           This option enables support in your system's NFS server for the
62           NFSv3 ACL protocol extension allowing NFS clients to manipulate
63           POSIX ACLs on files exported by your system's NFS server.  NFS
64           clients which support the Solaris NFSv3 ACL protocol can then
65           access and modify ACLs on your NFS server.
66
67           To store ACLs on your NFS server, you also need to enable ACL-
68           related CONFIG options for your local file systems of choice.
69
70           If unsure, say N.
71
72 config NFSD_V4
73         bool "NFS server support for NFS version 4"
74         depends on NFSD && PROC_FS
75         select FS_POSIX_ACL
76         select RPCSEC_GSS_KRB5
77         select CRYPTO
78         select CRYPTO_MD5
79         select CRYPTO_SHA256
80         select GRACE_PERIOD
81         select NFS_V4_2_SSC_HELPER if NFS_V4_2
82         help
83           This option enables support in your system's NFS server for
84           version 4 of the NFS protocol (RFC 3530).
85
86           To export files using NFSv4, you need to install additional user
87           space programs which can be found in the Linux nfs-utils package,
88           available from http://linux-nfs.org/.
89
90           If unsure, say N.
91
92 config NFSD_PNFS
93         bool
94
95 config NFSD_BLOCKLAYOUT
96         bool "NFSv4.1 server support for pNFS block layouts"
97         depends on NFSD_V4 && BLOCK
98         select NFSD_PNFS
99         select EXPORTFS_BLOCK_OPS
100         help
101           This option enables support for the exporting pNFS block layouts
102           in the kernel's NFS server. The pNFS block layout enables NFS
103           clients to directly perform I/O to block devices accessible to both
104           the server and the clients.  See RFC 5663 for more details.
105
106           If unsure, say N.
107
108 config NFSD_SCSILAYOUT
109         bool "NFSv4.1 server support for pNFS SCSI layouts"
110         depends on NFSD_V4 && BLOCK
111         select NFSD_PNFS
112         select EXPORTFS_BLOCK_OPS
113         help
114           This option enables support for the exporting pNFS SCSI layouts
115           in the kernel's NFS server. The pNFS SCSI layout enables NFS
116           clients to directly perform I/O to SCSI devices accessible to both
117           the server and the clients.  See draft-ietf-nfsv4-scsi-layout for
118           more details.
119
120           If unsure, say N.
121
122 config NFSD_FLEXFILELAYOUT
123         bool "NFSv4.1 server support for pNFS Flex File layouts"
124         depends on NFSD_V4
125         select NFSD_PNFS
126         help
127           This option enables support for the exporting pNFS Flex File
128           layouts in the kernel's NFS server. The pNFS Flex File  layout
129           enables NFS clients to directly perform I/O to NFSv3 devices
130           accessible to both the server and the clients.  See
131           draft-ietf-nfsv4-flex-files for more details.
132
133           Warning, this server implements the bare minimum functionality
134           to be a flex file server - it is for testing the client,
135           not for use in production.
136
137           If unsure, say N.
138
139 config NFSD_V4_2_INTER_SSC
140         bool "NFSv4.2 inter server to server COPY"
141         depends on NFSD_V4 && NFS_V4_2
142         help
143           This option enables support for NFSv4.2 inter server to
144           server copy where the destination server calls the NFSv4.2
145           client to read the data to copy from the source server.
146
147           If unsure, say N.
148
149 config NFSD_V4_SECURITY_LABEL
150         bool "Provide Security Label support for NFSv4 server"
151         depends on NFSD_V4 && SECURITY
152         help
153
154         Say Y here if you want enable fine-grained security label attribute
155         support for NFS version 4.  Security labels allow security modules like
156         SELinux and Smack to label files to facilitate enforcement of their policies.
157         Without this an NFSv4 mount will have the same label on each file.
158
159         If you do not wish to enable fine-grained security labels SELinux or
160         Smack policies on NFSv4 files, say N.