projects
/
linux-block.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
1b28d75
)
sunrpc: Fix potential leaks in sunrpc_cache_unhash()
author
Trond Myklebust
<trondmy@gmail.com>
Mon, 6 Jan 2020 18:40:34 +0000
(13:40 -0500)
committer
J. Bruce Fields
<bfields@redhat.com>
Wed, 22 Jan 2020 21:25:41 +0000
(16:25 -0500)
When we unhash the cache entry, we need to handle any pending upcalls
by calling cache_fresh_unlocked().
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
net/sunrpc/cache.c
patch
|
blob
|
blame
|
history
diff --git
a/net/sunrpc/cache.c
b/net/sunrpc/cache.c
index f740cb51802af8f2bb12a49031df172eea0f7da8..7ede1e52fd812e9c91f90301c3af827b0c3ff27b 100644
(file)
--- a/
net/sunrpc/cache.c
+++ b/
net/sunrpc/cache.c
@@
-1888,7
+1888,9
@@
void sunrpc_cache_unhash(struct cache_detail *cd, struct cache_head *h)
if (!hlist_unhashed(&h->cache_list)){
hlist_del_init_rcu(&h->cache_list);
cd->entries--;
+ set_bit(CACHE_CLEANED, &h->flags);
spin_unlock(&cd->hash_lock);
+ cache_fresh_unlocked(h, cd);
cache_put(h, cd);
} else
spin_unlock(&cd->hash_lock);