| From | Linus Torvalds <> | Date | Fri, 13 Mar 2020 17:25:46 -0700 | Subject | Re: [RFC][PATCH v4 11/69] lookup_fast(): consolidate the RCU success case |
| |
On Fri, Mar 13, 2020 at 4:55 PM Al Viro <viro@zeniv.linux.org.uk> 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
|