On Thu, 02 May 2024 11:15:48 -0400 Steven Rostedt rostedt@goodmis.org wrote:
+/*
- On a remount of tracefs, if UID or GID options are set, then
- the mount point inode permissions should be used.
- Reset the saved permission flags appropriately.
- */
+void eventfs_remount(struct tracefs_inode *ti, bool update_uid, bool update_gid) +{
- struct eventfs_inode *ei = ti->private;
And I just realized there's a race here too :-p
I need to set ti->private = NULL before freeing the ei, and probably free the ei via RCU.
-- Steve
- if (!ei)
return;
- if (update_uid)
ei->attr.mode &= ~EVENTFS_SAVE_UID;
- if (update_gid)
ei->attr.mode &= ~EVENTFS_SAVE_GID;
- if (!ei->entry_attrs)
return;
- for (int i = 0; i < ei->nr_entries; i++) {
if (update_uid)
ei->entry_attrs[i].mode &= ~EVENTFS_SAVE_UID;
if (update_gid)
ei->entry_attrs[i].mode &= ~EVENTFS_SAVE_GID;
- }
+}