• Linus Torvalds's avatar
    eventfs: Clean up dentry ops and add revalidate function · 8dce06e9
    Linus Torvalds authored
    In order for the dentries to stay up-to-date with the eventfs changes,
    just add a 'd_revalidate' function that checks the 'is_freed' bit.
    
    Also, clean up the dentry release to actually use d_release() rather
    than the slightly odd d_iput() function.  We don't care about the inode,
    all we want to do is to get rid of the refcount to the eventfs data
    added by dentry->d_fsdata.
    
    It would probably be cleaner to make eventfs its own filesystem, or at
    least set its own dentry ops when looking up eventfs files.  But as it
    is, only eventfs dentries use d_fsdata, so we don't really need to split
    these things up by use.
    
    Another thing that might be worth doing is to make all eventfs lookups
    mark their dentries as not worth caching.  We could do that with
    d_delete(), but the DCACHE_DONTCACHE flag would likely be even better.
    
    As it is, the dentries are all freeable, but they only tend to get freed
    at memory pressure rather than more proactively.  But that's a separate
    issue.
    
    Link: https://lore.kernel.org/linux-trace-kernel/202401291043.e62e89dc-oliver.sang@intel.com/
    Link: https://lore.kernel.org/linux-trace-kernel/20240131185513.124644253@goodmis.org
    
    Cc: stable@vger.kernel.org
    Cc: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
    Cc: Christian Brauner <brauner@kernel.org>
    Cc: Al Viro <viro@ZenIV.linux.org.uk>
    Cc: Ajay Kaher <ajay.kaher@broadcom.com>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Fixes: c1504e51 ("eventfs: Implement eventfs dir creation functions")
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
    8dce06e9
inode.c 19 KB