blk-throttle: fix potential NULL pointer dereference in throtl_select_dispatch
tg in throtl_select_dispatch is used first and then do check. Since tg may be NULL, it has potential NULL pointer dereference risk. So fix it. Signed-off-by: Joseph Qi <joseph.qi@linux.alibaba.com> Signed-off-by: Liu Bo <bo.liu@linux.alibaba.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
a6088845c2
commit
2ab74cd296
|
@ -1207,7 +1207,7 @@ static int throtl_select_dispatch(struct throtl_service_queue *parent_sq)
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
struct throtl_grp *tg = throtl_rb_first(parent_sq);
|
struct throtl_grp *tg = throtl_rb_first(parent_sq);
|
||||||
struct throtl_service_queue *sq = &tg->service_queue;
|
struct throtl_service_queue *sq;
|
||||||
|
|
||||||
if (!tg)
|
if (!tg)
|
||||||
break;
|
break;
|
||||||
|
@ -1219,6 +1219,7 @@ static int throtl_select_dispatch(struct throtl_service_queue *parent_sq)
|
||||||
|
|
||||||
nr_disp += throtl_dispatch_tg(tg);
|
nr_disp += throtl_dispatch_tg(tg);
|
||||||
|
|
||||||
|
sq = &tg->service_queue;
|
||||||
if (sq->nr_queued[0] || sq->nr_queued[1])
|
if (sq->nr_queued[0] || sq->nr_queued[1])
|
||||||
tg_update_disptime(tg);
|
tg_update_disptime(tg);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue