mirror of
https://github.com/lkl/linux.git
synced 2025-12-19 08:03:01 +09:00
blk-cgroup: pin the gendisk in struct blkcg_gq
Currently each blkcg_gq holds a request_queue reference, which is what is used in the policies. But a lot of these interfaces will move over to use a gendisk, so store a disk in struct blkcg_gq and hold a reference to it. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Andreas Herrmann <aherrmann@suse.de> Acked-by: Tejun Heo <tj@kernel.org> Link: https://lore.kernel.org/r/20230203150400.3199230-7-hch@lst.de Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
committed by
Jens Axboe
parent
180b04d450
commit
84d7d462b1
@@ -388,7 +388,7 @@ static void throtl_pd_init(struct blkg_policy_data *pd)
|
||||
{
|
||||
struct throtl_grp *tg = pd_to_tg(pd);
|
||||
struct blkcg_gq *blkg = tg_to_blkg(tg);
|
||||
struct throtl_data *td = blkg->q->td;
|
||||
struct throtl_data *td = blkg->disk->queue->td;
|
||||
struct throtl_service_queue *sq = &tg->service_queue;
|
||||
|
||||
/*
|
||||
@@ -1175,7 +1175,7 @@ static void throtl_pending_timer_fn(struct timer_list *t)
|
||||
|
||||
/* throtl_data may be gone, so figure out request queue by blkg */
|
||||
if (tg)
|
||||
q = tg->pd.blkg->q;
|
||||
q = tg->pd.blkg->disk->queue;
|
||||
else
|
||||
q = td->queue;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user