Thread (44 messages) 44 messages, 10 authors, 2020-10-19

Re: [PATCH] block: convert tasklets to use new tasklet_setup() API

From: James Bottomley <James.Bottomley@HansenPartnership.com>
Date: 2020-08-19 14:59:58
Also in: dri-devel, intel-gfx, linux-arm-kernel, linux-block, linux-hyperv, linux-input, linux-mmc, linux-s390, linux-spi, linux-um, lkml

On Wed, 2020-08-19 at 07:00 -0600, Jens Axboe wrote:
On 8/18/20 1:00 PM, James Bottomley wrote:
[...]
quoted
Since both threads seem to have petered out, let me suggest in
kernel.h:

#define cast_out(ptr, container, member) \
	container_of(ptr, typeof(*container), member)

It does what you want, the argument order is the same as
container_of with the only difference being you name the containing
structure instead of having to specify its type.
Not to incessantly bike shed on the naming, but I don't like
cast_out, it's not very descriptive. And it has connotations of
getting rid of something, which isn't really true.
Um, I thought it was exactly descriptive: you're casting to the outer
container.  I thought about following the C++ dynamic casting style, so
out_cast(), but that seemed a bit pejorative.  What about outer_cast()?
FWIW, I like the from_ part of the original naming, as it has some
clues as to what is being done here. Why not just from_container()?
That should immediately tell people what it does without having to
look up the implementation, even before this becomes a part of the
accepted coding norm.
I'm not opposed to container_from() but it seems a little less
descriptive than outer_cast() but I don't really care.  I always have
to look up container_of() when I'm using it so this would just be
another macro of that type ...

James
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help