)]}'
{
  "commit": "0eb03c7e8e2a4cc3653eb5eeb2d2001182071215",
  "tree": "94222ef7614292829f40b97c4e8a10779737d328",
  "parents": [
    "6d69b6c12fce479fde7bc06f686212451688a102",
    "2dd00ac1d38afba1b59e439abc300a9b0ce696bf"
  ],
  "author": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Fri May 24 08:27:34 2024 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Fri May 24 08:27:34 2024 -0700"
  },
  "message": "Merge tag \u0027trace-tracefs-v6.10\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace\n\nPull tracefs/eventfs updates from Steven Rostedt:\n \"Bug fixes:\n\n   - The eventfs directories need to have unique inode numbers. Make\n     sure that they do not get the default file inode number.\n\n   - Update the inode uid and gid fields on remount.\n\n     When a remount happens where a uid and/or gid is specified, all the\n     tracefs files and directories should get the specified uid and/or\n     gid. But this can be sporadic when some uids were assigned already.\n     There\u0027s already a list of inodes that are allocated. Just update\n     their uid and gid fields at the time of remount.\n\n   - Update the eventfs_inodes on remount from the top level \"events\"\n     descriptor.\n\n     There was a bug where not all the eventfs files or directories\n     where getting updated on remount. One fix was to clear the\n     SAVED_UID/GID flags from the inode list during the iteration of the\n     inodes during the remount. But because the eventfs inodes can be\n     freed when the last referenced is released, not all the\n     eventfs_inodes were being updated. This lead to the ownership\n     selftest to fail if it was run a second time (the first time would\n     leave eventfs_inodes with no corresponding tracefs_inode).\n\n     Instead, for eventfs_inodes, only process the \"events\"\n     eventfs_inode from the list iteration, as it is guaranteed to have\n     a tracefs_inode (it\u0027s never freed while the \"events\" directory\n     exists). As it has a list of its children, and the children have a\n     list of their children, just iterate all the eventfs_inodes from\n     the \"events\" descriptor and it is guaranteed to get all of them.\n\n   - Clear the EVENT_INODE flag from the tracefs_drop_inode() callback.\n\n     Currently the EVENTFS_INODE FLAG is cleared in the tracefs_d_iput()\n     callback. But this is the wrong location. The iput() callback is\n     called when the last reference to the dentry inode is hit. There\n     could be a case where two dentry\u0027s have the same inode, and the\n     flag will be cleared prematurely. The flag needs to be cleared when\n     the last reference of the inode is dropped and that happens in the\n     inode\u0027s drop_inode() callback handler.\n\n  Cleanups:\n\n   - Consolidate the creation of a tracefs_inode for an eventfs_inode\n\n     A tracefs_inode is created for both files and directories of the\n     eventfs system. It is open coded. Instead, consolidate it into a\n     single eventfs_get_inode() function call.\n\n   - Remove the eventfs getattr and permission callbacks.\n\n     The permissions for the eventfs files and directories are updated\n     when the inodes are created, on remount, and when the user sets\n     them (via setattr). The inodes hold the current permissions so\n     there is no need to have custom getattr or permissions callbacks as\n     they will more likely cause them to be incorrect. The inode\u0027s\n     permissions are updated when they should be updated. Remove the\n     getattr and permissions inode callbacks.\n\n   - Do not update eventfs_inode attributes on creation of inodes.\n\n     The eventfs_inodes attribute field is used to store the permissions\n     of the directories and files for when their corresponding inodes\n     are freed and are created again. But when the creation of the\n     inodes happen, the eventfs_inode attributes are recalculated. The\n     recalculation should only happen when the permissions change for a\n     given file or directory. Currently, the attribute changes are just\n     being set to their current files so this is not a bug, but it\u0027s\n     unnecessary and error prone. Stop doing that.\n\n   - The events directory inode is created once when the events\n     directory is created and deleted when it is deleted. It is now\n     updated on remount and when the user changes the permissions.\n     There\u0027s no need to use the eventfs_inode of the events directory to\n     store the events directory permissions. But using it to store the\n     default permissions for the files within the directory that have\n     not been updated by the user can simplify the code\"\n\n* tag \u0027trace-tracefs-v6.10\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:\n  eventfs: Do not use attributes for events directory\n  eventfs: Cleanup permissions in creation of inodes\n  eventfs: Remove getattr and permission callbacks\n  eventfs: Consolidate the eventfs_inode update in eventfs_get_inode()\n  tracefs: Clear EVENT_INODE flag in tracefs_drop_inode()\n  eventfs: Update all the eventfs_inodes from the events descriptor\n  tracefs: Update inode permissions on remount\n  eventfs: Keep the directories from having the same inode number as files\n",
  "tree_diff": []
}
