On Mon, 28 Jan 2008 18:18:26 -0500
"J. Bruce Fields" <[EMAIL PROTECTED]> wrote:

> On Mon, Jan 28, 2008 at 02:29:10PM -0500, Jeff Layton wrote:
> > It's possible for a RPC to outlive the lockd daemon that created
> > it, so we need to make sure that all RPC's are killed when lockd is
> > coming down. When nlm_shutdown_hosts is called, kill off all RPC
> > tasks associated with the host. Since we need to wait until they
> > have all gone away, we might as well just shut down the RPC client
> > altogether.
> > 
> > Signed-off-by: Jeff Layton <[EMAIL PROTECTED]>
> > ---
> >  fs/lockd/host.c |    7 ++++++-
> >  1 files changed, 6 insertions(+), 1 deletions(-)
> > 
> > diff --git a/fs/lockd/host.c b/fs/lockd/host.c
> > index ebec009..ca6b16f 100644
> > --- a/fs/lockd/host.c
> > +++ b/fs/lockd/host.c
> > @@ -379,8 +379,13 @@ nlm_shutdown_hosts(void)
> >     /* First, make all hosts eligible for gc */
> >     dprintk("lockd: nuking all hosts...\n");
> >     for (chain = nlm_hosts; chain < nlm_hosts +
> > NLM_HOST_NRHASH; ++chain) {
> > -           hlist_for_each_entry(host, pos, chain, h_hash)
> > +           hlist_for_each_entry(host, pos, chain, h_hash) {
> >                     host->h_expires = jiffies - 1;
> > +                   if (host->h_rpcclnt) {
> 
> So the only difference from the previous patch is this test and the
> following assignment?  OK.
> 
> --b.
> 

No, the old patch used rpc_killall_tasks and this one uses
rpc_shutdown_client. I don't believe rpc_killall_tasks gives any
guarantee about when the tasks actually complete, and we need to know
that they're gone before we allow lockd to exit.

> > +
> > rpc_shutdown_client(host->h_rpcclnt);
> > +                           host->h_rpcclnt = NULL;
> > +                   }
> > +           }
> >     }
> >  
> >     /* Then, perform a garbage collection pass */
> > -- 
> > 1.5.3.7
> > 


-- 
Jeff Layton <[EMAIL PROTECTED]>
-
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to