diff options
author | J. Bruce Fields <bfields@redhat.com> | 2011-01-10 16:44:41 -0500 |
---|---|---|
committer | J. Bruce Fields <bfields@redhat.com> | 2011-01-11 15:04:11 -0500 |
commit | 5ce8ba25d657a71d6d8cdb05a2b90c5ae7debfda (patch) | |
tree | 831d815e91e23de373fe7fdc7a54b3eb098067f5 /fs/nfsd/nfs4state.c | |
parent | 3ff3600e7eab16301e824293e8f49b9990bd4641 (diff) | |
download | lwn-5ce8ba25d657a71d6d8cdb05a2b90c5ae7debfda.tar.gz lwn-5ce8ba25d657a71d6d8cdb05a2b90c5ae7debfda.zip |
nfsd4: allow restarting callbacks
If we lose the backchannel and then the client repairs the problem,
resend any callbacks.
We use a new cb_done flag to track whether there is still work to be
done for the callback or whether it can be destroyed with the rpc.
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'fs/nfsd/nfs4state.c')
-rw-r--r-- | fs/nfsd/nfs4state.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index 408957cf6016..6e1f9aadd439 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c @@ -1077,6 +1077,7 @@ static struct nfs4_client *create_client(struct xdr_netobj name, char *recdir, INIT_LIST_HEAD(&clp->cl_openowners); INIT_LIST_HEAD(&clp->cl_delegations); INIT_LIST_HEAD(&clp->cl_lru); + INIT_LIST_HEAD(&clp->cl_callbacks); spin_lock_init(&clp->cl_lock); INIT_WORK(&clp->cl_cb_null.cb_work, nfsd4_do_callback_rpc); clp->cl_time = get_seconds(); |