Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 707518c1 authored by Trond Myklebust's avatar Trond Myklebust Committed by Greg Kroah-Hartman
Browse files

sunrpc: Fix potential leaks in sunrpc_cache_unhash()



[ Upstream commit 1d82163714c16ebe09c7a8c9cd3cef7abcc16208 ]

When we unhash the cache entry, we need to handle any pending upcalls
by calling cache_fresh_unlocked().

Signed-off-by: default avatarTrond Myklebust <trond.myklebust@hammerspace.com>
Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent 46503858
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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);