Re: [GIT PULL] vfs mount

Linus Torvalds
2025-04-03T19:19:05Z

On Thu, 3 Apr 2025 at 11:25, Leon Romanovsky <leon@kernel.org> wrote:
> >
> > - scoped_guard(rwsem_read, &namespace_sem)
> > + guard(rwsem_read, &namespace_sem);
>
> I'm looking at Linus's master commit a2cc6ff5ec8f ("Merge tag
> 'firewire-updates-6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394")
> and guard is declared as macro which gets only one argument: include/linux/cleanup.h
> 318 #define guard(_name) \
> 319 CLASS(_name, __UNIQUE_ID(guard))

Christian didn't test his patch, obviously.

It should be

guard(rwsem_read)(&namespace_sem);

the guard() macro is kind of odd, but the oddity relates to how it
kind of takes a "class" thing as it's argument, and that then expands
to the constructor that may or may not take arguments itself.

That made some of the macros simpler, although in retrospect the odd
syntax probably wasn't worth it.

Linus