Re: [PATCH 2/2] fs/dcache: Make negative dentries easier to be reclaimed

From: Andrew Morton
Date: Tue Aug 28 2018 - 19:22:13 EST


On Tue, 28 Aug 2018 16:10:24 -0700 Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:

> On Tue, Aug 28, 2018 at 3:29 PM Waiman Long <longman@xxxxxxxxxx> wrote:
> >
> > Yes, I can rewrite it. What is the problem with the abbreviated form?
>
> Either gcc rewrites it for you, or you end up _actually_ using a
> function pointer and calling through it.
>
> The latter would be absolutely horribly bad for something like
> "list_add()", which should expand to just a couple of instructions.
>
> And the former would be ok, except for the "you wrote code the garbage
> way, and then depended on the compiler fixing it up". Which we
> generally try to avoid in the kernel.
>
> (Don't get me wrong - we definitely depend on the compiler doing a
> good job at CSE and dead code elimination etc, but generally we try to
> avoid the whole "compiler has to rewrite code to be good" model).
>

And the "abbreviated form" will surely explode if one or both of those
"functions" happens to be implemented (or later reimplemented) as a macro.
It's best not to unnecessarily make such assumptions.