Fix refcounting, locking, etc., for callbacks. Currently seems broken; see oustanding bug reports.
cb_path_down: we don't mark callback down until the callbacks have timed out, which looks like it could take a full lease period. But that means by the time we mark it down we may already have unhashed the delegation. So the logic in nfsd4_renew() to return cb_path_down may never be hit. Fix: mark the callback path down after the first failure that indicates a network problem. But keep trying to recall existing delegations.
check that client expiry works ok: callback thread has to notice it has happened and suicide.
We should permit setclientid to change callback channel. For now, just make sure it does correctly shut down callback channel. For later, note all outstanding callbacks must notice the change and switch to the new rpc_client. They may also have to wait for that switch to happen, requiring a waitqueue and a spinlock to protect it?
Basic requirements: