On 09/08, K Prateek Nayak wrote:
On 9/8/2026 3:24 AM, Oleg Nesterov wrote:
quoted
quoted
This might be my - admittedly shallow - understanding of scoped_guard,
but does scoped guard handle goto correctly?
Yes, it does,
quoted
and why it's generally discouraged to mix cleanup.h and goto.
Hmm, why? I didn't know...
Apparently older GCC would allow subtle bugs with cleanup + goto to slip
by but clang has always caught those bugs and refused to compile so as
long as clang builds are happy, things should be good.
Here is an older explanation from Peter:
https://lore.kernel.org/lkml/20260327154136.GL3739106@noisy.programming.kicks-ass.net/ (local)
Ah, but in this case the code is buggy, "goto unregister" jumps
into the scope of __free.
Anyway, I agree that mixing cleanup and goto can make the code
confusing or buggy, but this particular case still looks fine
to me...
Oleg.