fusefs: don't disappear a vnode on entry cache expiration

When the entry cache expires, it's only necessary to purge the cache.
Disappearing a vnode also purges the attribute cache, which is unnecessary,
and invalidates the data cache, which could be harmful.

Sponsored by:	The FreeBSD Foundation
This commit is contained in:
Alan Somers 2019-04-11 21:13:54 +00:00
parent 6124fd7106
commit 4683b90591

View File

@ -797,12 +797,7 @@ fuse_vnop_lookup(struct vop_lookup_args *ap)
/* Cache timeout */
atomic_add_acq_long(&fuse_lookup_cache_misses,
1);
/*
* XXX is fuse_internal_vnode_disappear ok to
* call if another process is still using the
* vnode?
*/
fuse_internal_vnode_disappear(*vpp);
cache_purge(*vpp);
if (dvp != *vpp)
vput(*vpp);
else