cfq_get_queue: fix possible NULL pointer access
cfq_get_queue()->cfq_find_alloc_queue() can fail, check the returned value. Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru> Note that this isn't a bug at the moment, since the regular IO path does not call this path without __GFP_WAIT set. However, it could be a future bug, so I've applied it. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
This commit is contained in:
committed by
Jens Axboe
parent
abbeb88d00
commit
0a0836a09c
@@ -1443,8 +1443,11 @@ cfq_get_queue(struct cfq_data *cfqd, int is_sync, struct task_struct *tsk,
|
|||||||
cfqq = *async_cfqq;
|
cfqq = *async_cfqq;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!cfqq)
|
if (!cfqq) {
|
||||||
cfqq = cfq_find_alloc_queue(cfqd, is_sync, tsk, gfp_mask);
|
cfqq = cfq_find_alloc_queue(cfqd, is_sync, tsk, gfp_mask);
|
||||||
|
if (!cfqq)
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* pin the queue now that it's allocated, scheduler exit will prune it
|
* pin the queue now that it's allocated, scheduler exit will prune it
|
||||||
|
Reference in New Issue
Block a user