Re: [PATCH v23 13/22] vfs: Cache richacl in struct inode

From: David Howells
Date: Thu Jul 07 2016 - 10:14:34 EST


Jeff Layton <jlayton@xxxxxxxxxx> wrote:

> > + if (cmpxchg(&inode->i_acl, ACL_NOT_CACHED, sentinel) != ACL_NOT_CACHED)
> > + /* fall through */ ;
> > +
>
> So you do the same thing regardless of the outcome of the above? Why
> bother with the if at all here? Just do the cmpxchg and toss out the
> result.

gcc might complain if you don't check the result.

However, this does look like it's subject to a thundering herd problem. If
30000 processes all look at the ACL at the same time on a network fs, could
that cause 30000 RPC calls to be transmitted for the same thing?

David