2015-07-21 05:09:27

by Kinglong Mee

[permalink] [raw]
Subject: [PATCH v3] nfsd: Add layouts checking in client_has_state()

Layout is a state resource, nfsd should check it too.

v2, drop unneeded updating in nfsd4_renew()
v3, fix compile error without CONFIG_NFSD_PNFS

Signed-off-by: Kinglong Mee <[email protected]>
---
fs/nfsd/nfs4state.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
index 61dfb33..94a2980 100644
--- a/fs/nfsd/nfs4state.c
+++ b/fs/nfsd/nfs4state.c
@@ -2241,6 +2241,9 @@ static bool client_has_state(struct nfs4_client *clp)
* Also note we should probably be using this in 4.0 case too.
*/
return !list_empty(&clp->cl_openowners)
+#ifdef CONFIG_NFSD_PNFS
+ || !list_empty(&clp->cl_lo_states)
+#endif
|| !list_empty(&clp->cl_delegations)
|| !list_empty(&clp->cl_sessions);
}
--
2.4.3



2015-07-21 21:16:40

by J. Bruce Fields

[permalink] [raw]
Subject: Re: [PATCH v3] nfsd: Add layouts checking in client_has_state()

On Tue, Jul 21, 2015 at 01:09:17PM +0800, Kinglong Mee wrote:
> Layout is a state resource, nfsd should check it too.
>
> v2, drop unneeded updating in nfsd4_renew()
> v3, fix compile error without CONFIG_NFSD_PNFS

Got it, thanks.--b.

>
> Signed-off-by: Kinglong Mee <[email protected]>
> ---
> fs/nfsd/nfs4state.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
> index 61dfb33..94a2980 100644
> --- a/fs/nfsd/nfs4state.c
> +++ b/fs/nfsd/nfs4state.c
> @@ -2241,6 +2241,9 @@ static bool client_has_state(struct nfs4_client *clp)
> * Also note we should probably be using this in 4.0 case too.
> */
> return !list_empty(&clp->cl_openowners)
> +#ifdef CONFIG_NFSD_PNFS
> + || !list_empty(&clp->cl_lo_states)
> +#endif
> || !list_empty(&clp->cl_delegations)
> || !list_empty(&clp->cl_sessions);
> }
> --
> 2.4.3