dcache: move the DCACHE_OP_COMPARE case out of the __d_lookup_rcu loop
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 11 Aug 2022 22:29:46 +0000 (15:29 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 17 Aug 2022 21:33:03 +0000 (14:33 -0700)
commitae2a823643d71f40751259266f7c2e7d90909662
tree51da9f88acd77e76e35b6aabf0e5968081b8c110
parent274a2eebf80c60246f9edd6ef8e9a095ad121264
dcache: move the DCACHE_OP_COMPARE case out of the __d_lookup_rcu loop

__d_lookup_rcu() is one of the hottest functions in the kernel on
certain loads, and it is complicated by filesystems that might want to
have their own name compare function.

We can improve code generation by moving the test of DCACHE_OP_COMPARE
outside the loop, which makes the loop itself much simpler, at the cost
of some code duplication.  But both cases end up being simpler, and the
"native" direct case-sensitive compare particularly so.

Cc: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/dcache.c