Re: [PATCH 1/3] nfsd: don't try to shut down nfs4 state handling unless it's up

J. Bruce Fields
2010-06-13T20:28:44Z

On Wed, Jun 09, 2010 at 02:29:43PM -0400, Jeff Layton wrote:
> Ahh ok, I see what you're talking about now. Yeah, that should probably
> also be fixed. I think we just need to ensure to shut down the state in
> an error condition. Something like this compile-tested only patch?
>
> From 19bd25ea9a76ea184e4c30831765e812ce19b0a5 Mon Sep 17 00:00:00 2001
> From: Jeff Layton <jlayton@redhat.com>
> Date: Wed, 9 Jun 2010 14:21:51 -0400
> Subject: [PATCH] nfsd: shut down NFSv4 state when nfsd_svc encounters an error
>
> Currently, it's left up in some situations. That could cause the grace
> period to be shorter than it should be (along with other problems).

The patch looks right to me, thanks.

--b.

>
> Signed-off-by: Jeff Layton <jlayton@redhat.com>
> ---
> fs/nfsd/nfssvc.c | 11 +++++++----
> 1 files changed, 7 insertions(+), 4 deletions(-)
>
> diff --git a/fs/nfsd/nfssvc.c b/fs/nfsd/nfssvc.c
> index 06b2a26..a06ea99 100644
> --- a/fs/nfsd/nfssvc.c
> +++ b/fs/nfsd/nfssvc.c
> @@ -402,9 +402,9 @@ nfsd_svc(unsigned short port, int nrservs)
> nfsd_reset_versions();
>
> error = nfsd_create_serv();
> -
> if (error)
> - goto out;
> + goto shutdown_state;
> +
> error = nfsd_init_socks(port);
> if (error)
> goto failure;
> @@ -416,9 +416,12 @@ nfsd_svc(unsigned short port, int nrservs)
> * so subtract 1
> */
> error = nfsd_serv->sv_nrthreads - 1;
> - failure:
> +failure:
> svc_destroy(nfsd_serv); /* Release server */
> - out:
> +shutdown_state:
> + if (error < 0)
> + nfs4_state_shutdown();
> +out:
> mutex_unlock(&nfsd_mutex);
> return error;
> }
> --
> 1.5.5.6
>