nfs4: fix potential race with rapid nfs_callback_up/down cycle
authorJeff Layton <jlayton@redhat.com>
Wed, 11 Jun 2008 14:03:11 +0000 (10:03 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Wed, 9 Jul 2008 16:09:32 +0000 (12:09 -0400)
commit5afc597c5f0bd184457e49b9a330fcb37b69db11
treef84cd40755de219095c376a5f96ba69da80e26f5
parentee84dfc45467fd8e5ce04fa2813d98e0aebe465c
nfs4: fix potential race with rapid nfs_callback_up/down cycle

If the nfsv4 callback thread is rapidly brought up and down, it's
possible that nfs_callback_svc might never get a chance to run. If
this happens, the cleanup at thread exit might never occur, throwing
the refcounting off and nfs_callback_info in an incorrect state.

Move the clean functions into nfs_callback_down. Also change the
nfs_callback_info struct to track the svc_rqst rather than svc_serv
since we need to know that to call svc_exit_thread.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/callback.c