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

Message ID 20240202022959.515961549@goodmis.org
Headers
Series tracing/eventfs: Updates for v6.8 |

Message

Steven Rostedt Feb. 2, 2024, 2:29 a.m. UTC
  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(-)