Re: [PATCH v2 2/2] block: cancel all throttled bios in del_gendisk()

From: yukuai (C)
Date: Wed Dec 01 2021 - 04:26:28 EST


在 2021/12/01 0:26, Tejun Heo 写道:
Hello,

On Tue, Nov 30, 2021 at 09:17:30AM +0800, Yu Kuai wrote:
+void blk_throtl_cancel_bios(struct request_queue *q)
+{
+ struct throtl_data *td = q->td;
+ struct blkcg_gq *blkg;
+ struct cgroup_subsys_state *pos_css;
+ struct bio *bio;
+ int rw;
+
+ rcu_read_lock();

So, all of the draining is being performed without holding the q lock, which
*might* be okay given that we're in the del_gendisk path but is likely risky
- ie. there can still be timers or whatever racing against it.

I'll hold queue_lock to draining bios in next iteration,

Thanks,
Kuai

Thanks.