Re: transport_class: BUG if we can't release the attribute container

Matthew Wilcox
2008-04-02T14:30:56Z

On Wed, Apr 02, 2008 at 09:15:53AM -0500, James Bottomley wrote:
> On Tue, 2008-04-01 at 23:32 -0700, Greg KH wrote:
> > BUG_ON() should not do anything in the macro except test for a value, no
> > function calling. I think checkpatch.pl checks for this...
>
> Well, we can agree to differ on this. The camp that wants no side
> effects for BUG_ON() does so in case they want to define it to be a nop.

That's one argument, but to me, the most important thing is that reading
the content of BUG_ON is unnecessary for understanding the function.

> OK ... your subsystem tree your call, I suppose. How about the
> attached.

> -static inline int transport_container_unregister(struct transport_container *tc)
> +static inline void transport_container_unregister(struct transport_container *tc)
> {
> - return attribute_container_unregister(&tc->ac);
> + int err = attribute_container_unregister(&tc->ac);
> + BUG_ON(err);
> }

What's wrong with:

if (attribute_container_unregister(&tc->ac))
BUG();

--
Intel are signing my paycheques ... these opinions are still mine
"Bill, look, we understand that you're interested in selling us this
operating system, but compare it to ours. We can't possibly take such
a retrograde step."