On Fri, Mar 13, 2020 at 4:55 PM Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote: > > - if (unlikely(negative)) > + if (unlikely(!inode)) > return -ENOENT; Isn't that buggy? Despite the name, 'inode' isn't an inode pointer. It's a pointer to the return location. I think the test should be if (unlikely(!*inode)) return -ENOENT; and I also suspect that the argument name should be fixed (maybe "inodepp", maybe something better). Because the "inode" pointer itself always exists. The callers will have something like struct inode *inode; and then pass in "&inode" to the function. And it's possible that I'm talking complete garbage. Linus