70ba381e1a
Add client support for bypassing NFS for localhost reads, writes, and commits. This is only useful when the client and the server are running on the same host. nfs_local_probe() is stubbed out, later commits will enable client and server handshake via a Linux-only LOCALIO auxiliary RPC protocol. This has dynamic binding with the nfsd module (via nfs_localio module which is part of nfs_common). LOCALIO will only work if nfsd is already loaded. The "localio_enabled" nfs kernel module parameter can be used to disable and enable the ability to use LOCALIO support. CONFIG_NFS_LOCALIO enables NFS client support for LOCALIO. Lastly, LOCALIO uses an nfsd_file to initiate all IO. To make proper use of nfsd_file (and nfsd's filecache) its lifetime (duration before nfsd_file_put is called) must extend until after commit, read and write operations. So rather than immediately drop the nfsd_file reference in nfs_local_open_fh(), that doesn't happen until nfs_local_pgio_release() for read/write and not until nfs_local_release_commit_data() for commit. The same applies to the reference held on nfsd's nn->nfsd_serv. Both objects' lifetimes and associated references are managed through calls to nfs_to->nfsd_file_put_local(). Signed-off-by: Weston Andros Adamson <dros@primarydata.com> Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com> Co-developed-by: Mike Snitzer <snitzer@kernel.org> Signed-off-by: Mike Snitzer <snitzer@kernel.org> Signed-off-by: NeilBrown <neilb@suse.de> # nfs_open_local_fh Reviewed-by: Jeff Layton <jlayton@kernel.org> Signed-off-by: Anna Schumaker <anna.schumaker@oracle.com>
39 lines
1.3 KiB
Makefile
39 lines
1.3 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# Makefile for the Linux nfs filesystem routines.
|
|
#
|
|
|
|
obj-$(CONFIG_NFS_FS) += nfs.o
|
|
|
|
CFLAGS_nfstrace.o += -I$(src)
|
|
nfs-y := client.o dir.o file.o getroot.o inode.o super.o \
|
|
io.o direct.o pagelist.o read.o symlink.o unlink.o \
|
|
write.o namespace.o mount_clnt.o nfstrace.o \
|
|
export.o sysfs.o fs_context.o
|
|
nfs-$(CONFIG_ROOT_NFS) += nfsroot.o
|
|
nfs-$(CONFIG_SYSCTL) += sysctl.o
|
|
nfs-$(CONFIG_NFS_FSCACHE) += fscache.o
|
|
nfs-$(CONFIG_NFS_LOCALIO) += localio.o
|
|
|
|
obj-$(CONFIG_NFS_V2) += nfsv2.o
|
|
nfsv2-y := nfs2super.o proc.o nfs2xdr.o
|
|
|
|
obj-$(CONFIG_NFS_V3) += nfsv3.o
|
|
nfsv3-y := nfs3super.o nfs3client.o nfs3proc.o nfs3xdr.o
|
|
nfsv3-$(CONFIG_NFS_V3_ACL) += nfs3acl.o
|
|
|
|
obj-$(CONFIG_NFS_V4) += nfsv4.o
|
|
CFLAGS_nfs4trace.o += -I$(src)
|
|
nfsv4-y := nfs4proc.o nfs4xdr.o nfs4state.o nfs4renewd.o nfs4super.o nfs4file.o \
|
|
delegation.o nfs4idmap.o callback.o callback_xdr.o callback_proc.o \
|
|
nfs4namespace.o nfs4getroot.o nfs4client.o nfs4session.o \
|
|
dns_resolve.o nfs4trace.o
|
|
nfsv4-$(CONFIG_NFS_USE_LEGACY_DNS) += cache_lib.o
|
|
nfsv4-$(CONFIG_SYSCTL) += nfs4sysctl.o
|
|
nfsv4-$(CONFIG_NFS_V4_1) += pnfs.o pnfs_dev.o pnfs_nfs.o
|
|
nfsv4-$(CONFIG_NFS_V4_2) += nfs42proc.o nfs42xattr.o
|
|
|
|
obj-$(CONFIG_PNFS_FILE_LAYOUT) += filelayout/
|
|
obj-$(CONFIG_PNFS_BLOCK) += blocklayout/
|
|
obj-$(CONFIG_PNFS_FLEXFILE_LAYOUT) += flexfilelayout/
|