dm cache: handle kmalloc failure allocating background_tracker struct
Currently there is no kmalloc failure check on the allocation of
the background_tracker struct in btracker_create(), and so a NULL return
will lead to a NULL pointer dereference. Add a NULL check.
Detected by CoverityScan, CID#1416587 ("Dereference null return value")
Fixes: b29d4986d
("dm cache: significant rework to leverage dm-bio-prison-v2")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
This commit is contained in:
parent
13840d3801
commit
7e1b9521f5
@ -33,6 +33,11 @@ struct background_tracker *btracker_create(unsigned max_work)
|
|||||||
{
|
{
|
||||||
struct background_tracker *b = kmalloc(sizeof(*b), GFP_KERNEL);
|
struct background_tracker *b = kmalloc(sizeof(*b), GFP_KERNEL);
|
||||||
|
|
||||||
|
if (!b) {
|
||||||
|
DMERR("couldn't create background_tracker");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
b->max_work = max_work;
|
b->max_work = max_work;
|
||||||
atomic_set(&b->pending_promotes, 0);
|
atomic_set(&b->pending_promotes, 0);
|
||||||
atomic_set(&b->pending_writebacks, 0);
|
atomic_set(&b->pending_writebacks, 0);
|
||||||
|
Loading…
Reference in New Issue
Block a user