From: Ivan Babrou > Sent: 20 September 2022 20:06 ... > > +static int proc_readfd_count(struct inode *inode) > +{ > + struct task_struct *p = get_proc_task(inode); > + struct fdtable *fdt; > + unsigned int i, size, open_fds = 0; > + > + if (!p) > + return -ENOENT; > + > + if (p->files) { > + fdt = files_fdtable(p->files); > + size = fdt->max_fds; > + > + for (i = size / BITS_PER_LONG; i > 0;) > + open_fds += hweight64(fdt->open_fds[--i]); > + } > + > + return open_fds; > +} > + Doesn't that need (at least) rcu protection? There might also be issues reading p->files twice. David - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)