On Wed, 27 Sept 2023 at 10:56, Mateusz Guzik <mjguzik@xxxxxxxxx> wrote: > > Comments in the patch explicitly mention dodgin RCU for the file object. Not the commit message,. and the comment is also actually pretty obscure and only talks about the freeing part. The cred part is what actually made me go "why is that even rcu-free'd". I *think* it's bogus, but I didn't go look at the history of it . > Well put_cred is called synchronously, but should this happen to be > the last ref on them, they will get call_rcu(&cred->rcu, > put_cred_rcu)'ed. Yes. But the way it's done in __fput() you end up potentially RCU-delaying it twice. Odd. The reason we rcu-delay the 'struct file *' is because of the __fget_files_rcu() games. But I don't see why the cred thing is there. Historical mistake? But it all looks a bit odd, and because of that it worries me. Linus