[for-linus][PATCH 00/13] tracing/eventfs: Updates for v6.8

From: Steven Rostedt
Date: Thu Feb 01 2024 - 21:30:15 EST



Tracing and eventfs fixes for v6.8:

- Fix the return code for ring_buffer_poll_wait()
It was returing a -EINVAL instead of EPOLLERR.

- Zero out the tracefs_inode so that all fields are initialized.
The ti->private could have had stale data, but instead of
jus initializing it to NULL, clear out the entire structure
when it is allocated.

- Fix a crash in timerlat
The hrtimer was initialized at read and not open, but is
canceled at close. If the file was opened and never read
the close will pass a NULL pointer to hrtime_cancel().

- Rewrite of eventfs.
Linus wrote a patch series to remove the dentry references in the
eventfs_inode and to use ref counting and more of proper VFS
interfaces to make it work.

- Add warnin to put_ei() if ei is not set to free. That means
something is about to free it when it shouldn't.

- Restructure the eventfs_inode to make it more compact, and remove
the unused llist field.

- Remove the fsnotify*() funtions for when the inodes were being created
in the lookup code. It doesn't make sense to notify about creation
just because something is being looked up.

- The inode hard link count was not accurate. It was being updated
when a file was looked up. The inodes of directories were updating
their parent inode hard link count every time the inode was created.
That means if memory reclaim cleaned a stale directory inode and
the inode was lookup up again, it would increment the parent inode
again as well. Al Viro said to just have all eventfs directories
have a hard link count of 1. That tells user space not to trust it.

Daniel Bristot de Oliveira (1):
tracing/timerlat: Move hrtimer_init to timerlat_fd open()

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) (5):
tracefs: Zero out the tracefs_inode when allocating it
eventfs: Warn if an eventfs_inode is freed without is_freed being set
eventfs: Restructure eventfs_inode structure to be more condensed
eventfs: Remove fsnotify*() functions from lookup()
eventfs: Keep all directory links at 1

Vincent Donnefort (1):
ring-buffer: Clean ring_buffer_poll_wait() error return

----
fs/tracefs/event_inode.c | 568 ++++++++++++-------------------------------
fs/tracefs/inode.c | 102 ++------
fs/tracefs/internal.h | 43 ++--
kernel/trace/ring_buffer.c | 2 +-
kernel/trace/trace_osnoise.c | 6 +-
5 files changed, 195 insertions(+), 526 deletions(-)