linux/fs/nfs
Benjamin Coddington b1ece737f4 lockd: Introduce nlmclnt_operations
NFS would enjoy the ability to modify the behavior of the NLM client's
unlock RPC task in order to delay the transmission of the unlock until IO
that was submitted under that lock has completed.  This ability can ensure
that the NLM client will always complete the transmission of an unlock even
if the waiting caller has been interrupted with fatal signal.

For this purpose, a pointer to a struct nlmclnt_operations can be assigned
in a nfs_module's nfs_rpc_ops that will install those nlmclnt_operations on
the nlm_host.  The struct nlmclnt_operations defines three callback
operations that will be used in a following patch:

nlmclnt_alloc_call - used to call back after a successful allocation of
	a struct nlm_rqst in nlmclnt_proc().

nlmclnt_unlock_prepare - used to call back during NLM unlock's
	rpc_call_prepare.  The NLM client defers calling rpc_call_start()
	until this callback returns false.

nlmclnt_release_call - used to call back when the NLM client's struct
	nlm_rqst is freed.

Signed-off-by: Benjamin Coddington <bcodding@redhat.com>
Reviewed-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
2017-04-21 10:45:01 -04:00
..
blocklayout
filelayout NFS client fixes for 4.11 (part 2) 2017-03-31 12:29:03 -07:00
flexfilelayout pNFS/flexfiles: Check the result of nfs4_pnfs_ds_connect 2017-04-20 14:37:37 -04:00
cache_lib.c
cache_lib.h
callback.c NFS client fixes for 4.11 2017-03-17 14:16:22 -07:00
callback.h
callback_proc.c NFS: Remove extra dprintk()s from callback_proc.c 2017-04-20 13:39:32 -04:00
callback_xdr.c NFS: Remove extra dprintk()s from callback_xdr.c 2017-04-20 13:39:33 -04:00
client.c lockd: Introduce nlmclnt_operations 2017-04-21 10:45:01 -04:00
delegation.c
delegation.h
dir.c NFS: switch back to to ->iterate() 2017-04-20 13:33:09 -04:00
direct.c NFS: Clean up nfs_direct_commit_complete() 2017-04-20 13:39:33 -04:00
dns_resolve.c
dns_resolve.h
file.c NFS: Move the flock open mode check into nfs_flock() 2017-04-21 10:45:00 -04:00
fscache-index.c
fscache.c
fscache.h
getroot.c
inode.c Merge branch 'rebased-statx' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2017-03-03 11:38:56 -08:00
internal.h pNFS: return status from nfs4_pnfs_ds_connect 2017-03-17 16:07:10 -04:00
io.c
iostat.h
Kconfig nfs: remove the objlayout driver 2017-04-20 15:51:23 -04:00
Makefile nfs: remove the objlayout driver 2017-04-20 15:51:23 -04:00
mount_clnt.c
namespace.c NFS: Remove extra dprintk()s from namespace.c 2017-04-20 13:39:34 -04:00
netns.h
nfs.h
nfs2super.c
nfs2xdr.c
nfs3_fs.h
nfs3acl.c
nfs3client.c
nfs3proc.c lockd: Introduce nlmclnt_operations 2017-04-21 10:45:01 -04:00
nfs3super.c
nfs3xdr.c
nfs4_fs.h
nfs4client.c NFS: Remove extra dprintk()s from nfs4client.c 2017-04-20 13:39:35 -04:00
nfs4file.c
nfs4getroot.c NFS: Clean up nfs4_get_rootfh() 2017-04-20 13:39:35 -04:00
nfs4idmap.c
nfs4idmap.h
nfs4namespace.c NFS: Remove extra dprintk()s from nfs4namespace.c 2017-04-20 13:39:35 -04:00
nfs4proc.c NFS: Move the flock open mode check into nfs_flock() 2017-04-21 10:45:00 -04:00
nfs4renewd.c
nfs4session.c
nfs4session.h
nfs4state.c
nfs4super.c
nfs4sysctl.c
nfs4trace.c
nfs4trace.h
nfs4xdr.c pNFS: Remove unused layout driver callbacks 2017-04-20 16:48:14 -04:00
nfs42.h
nfs42proc.c NFS: Clean up nfs42_layoutstat_done() 2017-04-20 13:39:34 -04:00
nfs42xdr.c
nfsroot.c
nfstrace.c
nfstrace.h
pagelist.c NFS: Add an iocounter wait function for async RPC tasks 2017-04-21 10:45:01 -04:00
pnfs.c pNFS: Unexport pnfs_put_lseg_locked and _pnfs_return_layout 2017-04-20 16:53:58 -04:00
pnfs.h pNFS: Remove unused layout driver callbacks 2017-04-20 16:48:14 -04:00
pnfs_dev.c
pnfs_nfs.c pNFS: unexport nfs4_pnfs_v3_ds_connect_unload 2017-04-20 16:58:50 -04:00
proc.c lockd: Introduce nlmclnt_operations 2017-04-21 10:45:01 -04:00
read.c NFS: move rw_mode to nfs_pageio_header 2017-04-20 14:00:41 -04:00
super.c
symlink.c
sysctl.c
unlink.c
write.c NFS: move rw_mode to nfs_pageio_header 2017-04-20 14:00:41 -04:00