On Thu, Dec 10, 2020 at 2:29 PM Dave Chinner <david@xxxxxxxxxxxxx> wrote: > > So, really, this isn't avoiding IO at all - it's avoiding the > possibility of running a lookup path that might blocking on > something. For pathname lookup, the only case that matters is the RCU lockless lookup. That cache hits basically 100% of the time except for the first lookup, or under memory pressure. And honestly, from a performance perspective, it's the lockless path lookup that matters most. By the time you have to go to the filesystem, take the directory locks etc, you've already lost. So we're never going to bother with some kind of "lockless lookup for actual filesystems", because it's only extra work for no actual gain. End result: LOOKUP_NONBLOCK is about not just avoiding IO, but about avoiding the filesystem and the inevitable locking that causes. Linus