• Benjamin Coddington's avatar
    lockd: Introduce nlmclnt_operations · b1ece737
    Benjamin Coddington authored
    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: default avatarBenjamin Coddington <bcodding@redhat.com>
    Reviewed-by: default avatarJeff Layton <jlayton@redhat.com>
    Signed-off-by: default avatarTrond Myklebust <trond.myklebust@primarydata.com>
    b1ece737
clntproc.c 21.6 KB