On Fri, 26 Jan 2024 15:24:17 -0500 Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxxxx> wrote: > On 2024-01-26 15:12, Steven Rostedt wrote: > [...] > > diff --git a/fs/tracefs/inode.c b/fs/tracefs/inode.c > > index e1b172c0e091..2187be6d7b23 100644 > > --- a/fs/tracefs/inode.c > > +++ b/fs/tracefs/inode.c > > @@ -223,13 +223,41 @@ static const struct inode_operations tracefs_file_inode_operations = { > > .setattr = tracefs_setattr, > > }; > > > > +/* Copied from get_next_ino() but adds allocation for multiple inodes */ > > +#define LAST_INO_BATCH 1024 > > +#define LAST_INO_MASK (~(LAST_INO_BATCH - 1)) > > +static DEFINE_PER_CPU(unsigned int, last_ino); > > + > > +unsigned int tracefs_get_next_ino(int files) > > +{ > > + unsigned int *p = &get_cpu_var(last_ino); > > + unsigned int res = *p; > > + > > +#ifdef CONFIG_SMP > > + /* Check if adding files+1 overflows */ > > How does it handle a @files input where: > > * (files+1 > LAST_INO_BATCH) ? > > * (files+1 == LAST_INO_BATCH) ? Well, this is moot anyway, as Linus hates it. -- Steve