• Linus Torvalds's avatar
    tracefs: dentry lookup crapectomy · 49304c2b
    Linus Torvalds authored
    The dentry lookup for eventfs files was very broken, and had lots of
    signs of the old situation where the filesystem names were all created
    statically in the dentry tree, rather than being looked up dynamically
    based on the eventfs data structures.
    
    You could see it in the naming - how it claimed to "create" dentries
    rather than just look up the dentries that were given it.
    
    You could see it in various nonsensical and very incorrect operations,
    like using "simple_lookup()" on the dentries that were passed in, which
    only results in those dentries becoming negative dentries.  Which meant
    that any other lookup would possibly return ENOENT if it saw that
    negative dentry before the data was then later filled in.
    
    You could see it in the immense amount of nonsensical code that didn't
    actually just do lookups.
    
    Link: https://lore.kernel.org/linux-trace-kernel/202401291043.e62e89dc-oliver.sang@intel.com/
    Link: https://lore.kernel.org/linux-trace-kernel/20240131233227.73db55e1@gandalf.local.home
    
    Cc: stable@vger.kernel.org
    Cc: Al Viro <viro@ZenIV.linux.org.uk>
    Cc: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
    Cc: Christian Brauner <brauner@kernel.org>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Ajay Kaher <ajay.kaher@broadcom.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    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>
    49304c2b
internal.h 2.65 KB