[PATCH v2 0/7] eventfs: Rewrite to simplify the code (aka: crapectomy)

From: Steven Rostedt
Date: Wed Jan 31 2024 - 13:55:28 EST



Linus took the time to massively clean up the eventfs logic.
I took his code and made tweaks to represent some of the feedback
from Al Viro and also fix issues that came up in testing.

The diff between v1 and this can be found here:
https://lore.kernel.org/linux-trace-kernel/20240131105847.3e9afcb8@xxxxxxxxxxxxxxxxxx/

Although the first patch I changed to use memset_after() since
that update.

I would like to have this entire series go all the way back to 6.6 (after it
is accepted in mainline of course) and replace everything since the creation
of the eventfs code. That is, stable releases may need to add all the
patches that are in fs/tracefs to make that happen. The reason being is that
this rewrite likely fixed a lot of hidden bugs and I honestly believe it's
more stable than the code that currently exists.

Note, there's more clean ups that can happen. One being cleaning up
the eventfs_inode structure. But that's not critical now and can be
added later.

This made it through one round of my testing. I'm going to run it
again but with the part of testing that also runs some tests on
each patch in the series to make sure it doesn't break bisection.

In Linus's first version, patch 5 broke some of the tests but was fixed
in patch 6. I swapped the order and moved patch 6 before patch 5
and it appears to work. I still need to run this through all
my testing again.

Version 1 is at: https://lore.kernel.org/linux-trace-kernel/20240130190355.11486-1-torvalds@xxxxxxxxxxxxxxxxxxxx/



Linus Torvalds (6):
eventfs: Initialize the tracefs inode properly
tracefs: Avoid using the ei->dentry pointer unnecessarily
tracefs: dentry lookup crapectomy
eventfs: Remove unused 'd_parent' pointer field
eventfs: Clean up dentry ops and add revalidate function
eventfs: Get rid of dentry pointers without refcounts

Steven Rostedt (Google) (1):
tracefs: Zero out the tracefs_inode when allocating it

----
fs/tracefs/event_inode.c | 551 ++++++++++++-----------------------------------
fs/tracefs/inode.c | 102 ++-------
fs/tracefs/internal.h | 18 +-
3 files changed, 167 insertions(+), 504 deletions(-)