summaryrefslogtreecommitdiff
path: root/fs/nfsd/nfs4callback.c
diff options
context:
space:
mode:
authorJ. Bruce Fields <bfields@citi.umich.edu>2007-11-22 13:54:18 -0500
committerJ. Bruce Fields <bfields@citi.umich.edu>2008-02-01 16:42:01 -0500
commit46f8a64bae11f5c9b15b4401f6e9863281999b66 (patch)
treeaea712834e9a12a43772de61c1f6af0dc2ea1b57 /fs/nfsd/nfs4callback.c
parent24e1c13c93cbdd05e4b7ea921c0050b036555adc (diff)
downloadlinux-3.10-46f8a64bae11f5c9b15b4401f6e9863281999b66.tar.gz
linux-3.10-46f8a64bae11f5c9b15b4401f6e9863281999b66.tar.bz2
linux-3.10-46f8a64bae11f5c9b15b4401f6e9863281999b66.zip
nfsd4: probe callback channel only once
Our callback code doesn't actually handle concurrent attempts to probe the callback channel. Some rethinking of the locking may be required. However, we can also just move the callback probing to this case. Since this is the only time a client is "confirmed" (and since that can only happen once in the lifetime of a client), this ensures we only probe once. Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Diffstat (limited to 'fs/nfsd/nfs4callback.c')
-rw-r--r--fs/nfsd/nfs4callback.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/fs/nfsd/nfs4callback.c b/fs/nfsd/nfs4callback.c
index 9d536a8cb37..a9735a67296 100644
--- a/fs/nfsd/nfs4callback.c
+++ b/fs/nfsd/nfs4callback.c
@@ -395,8 +395,7 @@ nfsd4_probe_callback(struct nfs4_client *clp)
};
struct task_struct *t;
- if (atomic_read(&cb->cb_set))
- return;
+ BUG_ON(atomic_read(&clp->cl_callback.cb_set));
/* Initialize address */
memset(&addr, 0, sizeof(addr));