]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
fusefs: don't require FUSE_EXPORT_SUPPORT for async invalidation
authorasomers <asomers@FreeBSD.org>
Mon, 3 Jun 2019 20:45:32 +0000 (20:45 +0000)
committerasomers <asomers@FreeBSD.org>
Mon, 3 Jun 2019 20:45:32 +0000 (20:45 +0000)
commit9daf790af28be6650d9af129926e81d26ed92555
treee779557a922f446049b9e7cc48f4572903df77eb
parent3400bbe1aa169b68355da53357591617b24c0d6b
fusefs: don't require FUSE_EXPORT_SUPPORT for async invalidation

In r348560 I thought that FUSE_EXPORT_SUPPORT was required for cases where
the node to be invalidated (or the parent of the entry to be invalidated)
wasn't cached.  But I realize now that that's not the case.  During entry
invalidation, if the parent isn't in the vfs hash table, then it must've
been reclaimed.  And since fuse_vnop_reclaim does a cache_purge, that means
the entry to be invalidated has already been removed from the namecache.
And during inode invalidation, if the inode to be invalidated isn't in the
vfs hash table, then it too must've been reclaimed.  In that case it will
have no buffer cache to invalidate.

Sponsored by: The FreeBSD Foundation
sys/fs/fuse/fuse_internal.c
sys/fs/fuse/fuse_vfsops.c
tests/sys/fs/fusefs/notify.cc