On Mon, Nov 27, 2023 at 12:51:30PM +0100, Christian Brauner wrote: > Signed-off-by: Christian Brauner <brauner@xxxxxxxxxx> > --- > fs/super.c | 51 ++++++++++++++------------------------------------- > 1 file changed, 14 insertions(+), 37 deletions(-) > > diff --git a/fs/super.c b/fs/super.c > index aa4e5c11ee32..f3227b22879d 100644 > --- a/fs/super.c > +++ b/fs/super.c > @@ -81,16 +81,13 @@ static inline void super_unlock_shared(struct super_block *sb) > super_unlock(sb, false); > } > > +static bool super_load_flags(const struct super_block *sb, unsigned int flags) > { > /* > * Pairs with smp_store_release() in super_wake() and ensures > + * that we see @flags after we're woken. > */ > + return smp_load_acquire(&sb->s_flags) & flags; I find the name for this helper very confusing. Yes, eventually it is clear that the load maps to a load instruction with acquire semantics here, but it's a really unusual naming I think. Unfortunately I can't offer a better one either. Otherwise this looks good except for the fact that I really hate code using smp_load_acquire / smp_store_release directly because of all the mental load it causes.