eventfs: Keep the directories from having the same inode number as files
authorSteven Rostedt (Google) <rostedt@goodmis.org>
Thu, 23 May 2024 05:14:26 +0000 (01:14 -0400)
committerSteven Rostedt (Google) <rostedt@goodmis.org>
Thu, 23 May 2024 13:26:23 +0000 (09:26 -0400)
The directories require unique inode numbers but all the eventfs files
have the same inode number. Prevent the directories from having the same
inode numbers as the files as that can confuse some tooling.

Link: https://lore.kernel.org/linux-trace-kernel/20240523051539.428826685@goodmis.org
Cc: stable@vger.kernel.org
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Masahiro Yamada <masahiroy@kernel.org>
Fixes: 834bf76add3e6 ("eventfs: Save directory inodes in the eventfs_inode structure")
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
fs/tracefs/event_inode.c

index 0256afdd4acfb553a189fc3f9e1f4a054650ebe8..55a40a730b10c81fde0d25ed2a04ffd4ea80837e 100644 (file)
@@ -50,8 +50,12 @@ static struct eventfs_root_inode *get_root_inode(struct eventfs_inode *ei)
 /* Just try to make something consistent and unique */
 static int eventfs_dir_ino(struct eventfs_inode *ei)
 {
-       if (!ei->ino)
+       if (!ei->ino) {
                ei->ino = get_next_ino();
+               /* Must not have the file inode number */
+               if (ei->ino == EVENTFS_FILE_INODE_INO)
+                       ei->ino = get_next_ino();
+       }
 
        return ei->ino;
 }