Messages in this thread | | | Subject | Re: [PATCH v2 2/2] block: cancel all throttled bios in del_gendisk() | From | "yukuai (C)" <> | Date | Wed, 1 Dec 2021 17:26:17 +0800 |
| |
在 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. >
| |