On Tue, 30 Jan 2024 at 08:49, Steven Rostedt <[email protected]> wrote:
>
> - On removal, I got rid of the SRCU callback and the work queue.
> Instead, I find the dentry of the current eventfs_inode that is being
> deleted by walking the ei->parent until I find the events inode that has
> a dentry. I then use that to do a lookup walking back down to the
> eventfs_inode I want to delete. This gives me the dentry that I can call
> d_invalidate() on.
Yes, that works.
However, I have a patch that is *much* smaller and simpler, and
doesn't need that walk.
The VFS layer already has a good interface for "should I still use
this dentry", which is needed for various network filesystems etc that
want to time out caches (or check explicitly whether the file still
exists etc): it's the dentry d_revalidate() check.
Let me just reboot into it to test that I got all the cases.
It makes the code even more obvious, and avoids all the complexity.
Linus