mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-28 20:02:17 +00:00
![Chuck Lever](/assets/img/avatar_default.png)
yuehaibing@huawei.com reports the following build errors arise when
CONFIG_NFSD_V4_2_INTER_SSC is set and the NFS client is not built
into the kernel:
fs/nfsd/nfs4proc.o: In function `nfsd4_do_copy':
nfs4proc.c:(.text+0x23b7): undefined reference to `nfs42_ssc_close'
fs/nfsd/nfs4proc.o: In function `nfsd4_copy':
nfs4proc.c:(.text+0x5d2a): undefined reference to `nfs_sb_deactive'
fs/nfsd/nfs4proc.o: In function `nfsd4_do_async_copy':
nfs4proc.c:(.text+0x61d5): undefined reference to `nfs42_ssc_open'
nfs4proc.c:(.text+0x6389): undefined reference to `nfs_sb_deactive'
The new inter-server copy code invokes client functions. Until the
NFS server has infrastructure to load the appropriate NFS client
modules to handle inter-server copy requests, let's constrain the
way this feature is built.
Reported-by: YueHaibing <yuehaibing@huawei.com>
Fixes: ce0887ac96
("NFSD add nfs4 inter ssc to nfsd4_copy")
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Tested-by: YueHaibing <yuehaibing@huawei.com> # build-tested
168 lines
5.5 KiB
Text
168 lines
5.5 KiB
Text
# SPDX-License-Identifier: GPL-2.0-only
|
|
config NFSD
|
|
tristate "NFS server support"
|
|
depends on INET
|
|
depends on FILE_LOCKING
|
|
depends on FSNOTIFY
|
|
select LOCKD
|
|
select SUNRPC
|
|
select EXPORTFS
|
|
select NFS_ACL_SUPPORT if NFSD_V2_ACL
|
|
depends on MULTIUSER
|
|
help
|
|
Choose Y here if you want to allow other computers to access
|
|
files residing on this system using Sun's Network File System
|
|
protocol. To compile the NFS server support as a module,
|
|
choose M here: the module will be called nfsd.
|
|
|
|
You may choose to use a user-space NFS server instead, in which
|
|
case you can choose N here.
|
|
|
|
To export local file systems using NFS, you also need to install
|
|
user space programs which can be found in the Linux nfs-utils
|
|
package, available from http://linux-nfs.org/. More detail about
|
|
the Linux NFS server implementation is available via the
|
|
exports(5) man page.
|
|
|
|
Below you can choose which versions of the NFS protocol are
|
|
available to clients mounting the NFS server on this system.
|
|
Support for NFS version 2 (RFC 1094) is always available when
|
|
CONFIG_NFSD is selected.
|
|
|
|
If unsure, say N.
|
|
|
|
config NFSD_V2_ACL
|
|
bool
|
|
depends on NFSD
|
|
|
|
config NFSD_V3
|
|
bool "NFS server support for NFS version 3"
|
|
depends on NFSD
|
|
help
|
|
This option enables support in your system's NFS server for
|
|
version 3 of the NFS protocol (RFC 1813).
|
|
|
|
If unsure, say Y.
|
|
|
|
config NFSD_V3_ACL
|
|
bool "NFS server support for the NFSv3 ACL protocol extension"
|
|
depends on NFSD_V3
|
|
select NFSD_V2_ACL
|
|
help
|
|
Solaris NFS servers support an auxiliary NFSv3 ACL protocol that
|
|
never became an official part of the NFS version 3 protocol.
|
|
This protocol extension allows applications on NFS clients to
|
|
manipulate POSIX Access Control Lists on files residing on NFS
|
|
servers. NFS servers enforce POSIX ACLs on local files whether
|
|
this protocol is available or not.
|
|
|
|
This option enables support in your system's NFS server for the
|
|
NFSv3 ACL protocol extension allowing NFS clients to manipulate
|
|
POSIX ACLs on files exported by your system's NFS server. NFS
|
|
clients which support the Solaris NFSv3 ACL protocol can then
|
|
access and modify ACLs on your NFS server.
|
|
|
|
To store ACLs on your NFS server, you also need to enable ACL-
|
|
related CONFIG options for your local file systems of choice.
|
|
|
|
If unsure, say N.
|
|
|
|
config NFSD_V4
|
|
bool "NFS server support for NFS version 4"
|
|
depends on NFSD && PROC_FS
|
|
select NFSD_V3
|
|
select FS_POSIX_ACL
|
|
select SUNRPC_GSS
|
|
select CRYPTO_MD5
|
|
select CRYPTO_SHA256
|
|
select GRACE_PERIOD
|
|
help
|
|
This option enables support in your system's NFS server for
|
|
version 4 of the NFS protocol (RFC 3530).
|
|
|
|
To export files using NFSv4, you need to install additional user
|
|
space programs which can be found in the Linux nfs-utils package,
|
|
available from http://linux-nfs.org/.
|
|
|
|
If unsure, say N.
|
|
|
|
config NFSD_PNFS
|
|
bool
|
|
|
|
config NFSD_BLOCKLAYOUT
|
|
bool "NFSv4.1 server support for pNFS block layouts"
|
|
depends on NFSD_V4 && BLOCK
|
|
select NFSD_PNFS
|
|
select EXPORTFS_BLOCK_OPS
|
|
help
|
|
This option enables support for the exporting pNFS block layouts
|
|
in the kernel's NFS server. The pNFS block layout enables NFS
|
|
clients to directly perform I/O to block devices accesible to both
|
|
the server and the clients. See RFC 5663 for more details.
|
|
|
|
If unsure, say N.
|
|
|
|
config NFSD_SCSILAYOUT
|
|
bool "NFSv4.1 server support for pNFS SCSI layouts"
|
|
depends on NFSD_V4 && BLOCK
|
|
select NFSD_PNFS
|
|
select EXPORTFS_BLOCK_OPS
|
|
select BLK_SCSI_REQUEST
|
|
help
|
|
This option enables support for the exporting pNFS SCSI layouts
|
|
in the kernel's NFS server. The pNFS SCSI layout enables NFS
|
|
clients to directly perform I/O to SCSI devices accesible to both
|
|
the server and the clients. See draft-ietf-nfsv4-scsi-layout for
|
|
more details.
|
|
|
|
If unsure, say N.
|
|
|
|
config NFSD_FLEXFILELAYOUT
|
|
bool "NFSv4.1 server support for pNFS Flex File layouts"
|
|
depends on NFSD_V4
|
|
select NFSD_PNFS
|
|
help
|
|
This option enables support for the exporting pNFS Flex File
|
|
layouts in the kernel's NFS server. The pNFS Flex File layout
|
|
enables NFS clients to directly perform I/O to NFSv3 devices
|
|
accesible to both the server and the clients. See
|
|
draft-ietf-nfsv4-flex-files for more details.
|
|
|
|
Warning, this server implements the bare minimum functionality
|
|
to be a flex file server - it is for testing the client,
|
|
not for use in production.
|
|
|
|
If unsure, say N.
|
|
|
|
config NFSD_V4_2_INTER_SSC
|
|
bool "NFSv4.2 inter server to server COPY"
|
|
depends on NFSD_V4 && NFS_V4_1 && NFS_V4_2 && NFS_FS=y
|
|
help
|
|
This option enables support for NFSv4.2 inter server to
|
|
server copy where the destination server calls the NFSv4.2
|
|
client to read the data to copy from the source server.
|
|
|
|
If unsure, say N.
|
|
|
|
config NFSD_V4_SECURITY_LABEL
|
|
bool "Provide Security Label support for NFSv4 server"
|
|
depends on NFSD_V4 && SECURITY
|
|
help
|
|
|
|
Say Y here if you want enable fine-grained security label attribute
|
|
support for NFS version 4. Security labels allow security modules like
|
|
SELinux and Smack to label files to facilitate enforcement of their policies.
|
|
Without this an NFSv4 mount will have the same label on each file.
|
|
|
|
If you do not wish to enable fine-grained security labels SELinux or
|
|
Smack policies on NFSv4 files, say N.
|
|
|
|
config NFSD_FAULT_INJECTION
|
|
bool "NFS server manual fault injection"
|
|
depends on NFSD_V4 && DEBUG_KERNEL && DEBUG_FS && BROKEN
|
|
help
|
|
This option enables support for manually injecting faults
|
|
into the NFS server. This is intended to be used for
|
|
testing error recovery on the NFS client.
|
|
|
|
If unsure, say N.
|