]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
fusefs: don't require FUSE_EXPORT_SUPPORT for async invalidation
authorAlan Somers <asomers@FreeBSD.org>
Mon, 3 Jun 2019 20:45:32 +0000 (20:45 +0000)
committerAlan Somers <asomers@FreeBSD.org>
Mon, 3 Jun 2019 20:45:32 +0000 (20:45 +0000)
commit6ff7f297f88fc91c91b1853d4300e2f4b0f993a0
treee779557a922f446049b9e7cc48f4572903df77eb
parenteae1ae132ced5b1a45c02ee7c4e8fd8cc585fb82
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