• Steven Rostedt (Google)'s avatar
    eventfs: Keep all directory links at 1 · ca185770
    Steven Rostedt (Google) authored
    The directory link count in eventfs was somewhat bogus. It was only being
    updated when a directory child was being looked up and not on creation.
    
    One solution would be to update in get_attr() the link count by iterating
    the ei->children list and then adding 2. But that could slow down simple
    stat() calls, especially if it's done on all directories in eventfs.
    
    Another solution would be to add a parent pointer to the eventfs_inode
    and keep track of the number of sub directories it has on creation. But
    this adds overhead for something not really worthwhile.
    
    The solution decided upon is to keep all directory links in eventfs as 1.
    This tells user space not to rely on the hard links of directories. Which
    in this case it shouldn't.
    
    Link: https://lore.kernel.org/linux-trace-kernel/20240201002719.GS2087318@ZenIV/
    Link: https://lore.kernel.org/linux-trace-kernel/20240201161617.339968298@goodmis.org
    
    Cc: stable@vger.kernel.org
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
    Cc: Christian Brauner <brauner@kernel.org>
    Cc: Al Viro <viro@ZenIV.linux.org.uk>
    Cc: Ajay Kaher <ajay.kaher@broadcom.com>
    Fixes: c1504e51 ("eventfs: Implement eventfs dir creation functions")
    Suggested-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
    ca185770
event_inode.c 22.2 KB