Re: [RFC][PATCH v4 15/69] new step_into() flag: WALK_NOFOLLOW

From: Linus Torvalds
Date: Fri Mar 13 2020 - 20:32:53 EST


I mentioned this last time (perhaps for a different sequence):

On Fri, Mar 13, 2020 at 4:54 PM Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote:
>
> if (likely(!d_is_symlink(path->dentry)) ||
> - !(flags & WALK_FOLLOW || nd->flags & LOOKUP_FOLLOW)) {
> + !(flags & WALK_FOLLOW || nd->flags & LOOKUP_FOLLOW) ||
> + flags & WALK_NOFOLLOW) {

Yes, I know that bitwise operations have higher precedence than the
logical ones. And I know & (and &&) have higher precedence than | (and
||).

But I have to _think_ about it every time I see code like this.

I'd really prefer to see

if ((a & BIT) || (b & ANOTHER_BIT))

over the "equivalent" and shorter

if (a & BIT || b & ANOTHER_BIT)

Please make it explicit. It wasn't before either, but it _could_ be.

Linus