diff options
author | Daniel Wagner <daniel.wagner@bmw-carit.de> | 2016-09-22 13:54:29 +0200 |
---|---|---|
committer | Anna Schumaker <Anna.Schumaker@Netapp.com> | 2016-09-23 15:40:12 +0200 |
commit | 2a446a5d99fe838b8aba2592a4bc88d93d8cebf8 (patch) | |
tree | c9fed34862e5c7cb2949146643fbe0d00abde914 | |
parent | NFS: direct: use complete() instead of complete_all() (diff) | |
download | linux-2a446a5d99fe838b8aba2592a4bc88d93d8cebf8.tar.xz linux-2a446a5d99fe838b8aba2592a4bc88d93d8cebf8.zip |
NFS: cache_lib: use complete() instead of complete_all()
There is only one waiter for the completion, therefore there
is no need to use complete_all(). Let's make that clear by
using complete() instead of complete_all().
The generic caching code from sunrpc is calling revisit() only once.
The usage pattern of the completion is:
waiter context waker context
do_cache_lookup_wait()
nfs_cache_defer_req_alloc()
init_completion()
do_cache_lookup()
nfs_cache_wait_for_upcall()
wait_for_completion_timeout()
nfs_dns_cache_revisit()
complete()
nfs_cache_defer_req_put()
Signed-off-by: Daniel Wagner <daniel.wagner@bmw-carit.de>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
-rw-r--r-- | fs/nfs/cache_lib.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/nfs/cache_lib.c b/fs/nfs/cache_lib.c index 5f7b053720ee..6de15709d024 100644 --- a/fs/nfs/cache_lib.c +++ b/fs/nfs/cache_lib.c @@ -76,7 +76,7 @@ static void nfs_dns_cache_revisit(struct cache_deferred_req *d, int toomany) dreq = container_of(d, struct nfs_cache_defer_req, deferred_req); - complete_all(&dreq->completion); + complete(&dreq->completion); nfs_cache_defer_req_put(dreq); } |