On Tue, Aug 01, 2023 at 03:04:50PM -0400, Kent Overstreet wrote: > > Because blk-cgroup not only works at the lowest level in the stack, > > but also for stackable block devices. It's not a design decision I > > particularly agree with, but it's been there forever. > > You're setting the association only to the highest block device in the > stack - how on earth is it supposed to work with anything lower? Hey, ask the cgroup folks as they come up with it. I'm not going to defend the logic here. > And looking at bio_associate_blkg(), this code looks completely broken. > It's checking bio->bi_blkg, but that's just been set to NULL in > bio_init(). It's checking bi_blkg because it can also be called from bio_set_dev. > And this is your code, so I think you need to go over this again. It's "my code" in the sene of that I did one big round of unwinding the even bigger mess that was there. There is another few rounds needed for the code to vaguely make sense.