Kinglong Mee reports that asynchronous delegations are being killed
by the call to rpc_shutdown_client() when unmounting. This can lead
to state leakage on the server until the client lease expires.
Reported-by: Kinglong Mee <[email protected]>
Signed-off-by: Trond Myklebust <[email protected]>
---
fs/nfs/delegation.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/nfs/delegation.c b/fs/nfs/delegation.c
index a6ad68865880..08c624448750 100644
--- a/fs/nfs/delegation.c
+++ b/fs/nfs/delegation.c
@@ -514,7 +514,7 @@ void nfs_inode_return_delegation_noreclaim(struct inode *inode)
delegation = nfs_inode_detach_delegation(inode);
if (delegation != NULL)
- nfs_do_return_delegation(inode, delegation, 0);
+ nfs_do_return_delegation(inode, delegation, 1);
}
/**
--
2.1.0
On 2015/3/28 0:52, Trond Myklebust wrote:
> Kinglong Mee reports that asynchronous delegations are being killed
> by the call to rpc_shutdown_client() when unmounting. This can lead
> to state leakage on the server until the client lease expires.
>
> Reported-by: Kinglong Mee <[email protected]>
> Signed-off-by: Trond Myklebust <[email protected]>
With this patch, client can return delegation, destroy session and
client id correctly. I'd like it.
Tested-by: Kinglong Mee <[email protected]>
thanks,
Kinglong Mee
> ---
> fs/nfs/delegation.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/nfs/delegation.c b/fs/nfs/delegation.c
> index a6ad68865880..08c624448750 100644
> --- a/fs/nfs/delegation.c
> +++ b/fs/nfs/delegation.c
> @@ -514,7 +514,7 @@ void nfs_inode_return_delegation_noreclaim(struct inode *inode)
>
> delegation = nfs_inode_detach_delegation(inode);
> if (delegation != NULL)
> - nfs_do_return_delegation(inode, delegation, 0);
> + nfs_do_return_delegation(inode, delegation, 1);
> }
>
> /**
>