]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
md: Fix failed allocation of md_register_thread
authorAditya Pakki <pakki001@umn.edu>
Mon, 4 Mar 2019 22:48:54 +0000 (16:48 -0600)
committerBen Hutchings <ben@decadent.org.uk>
Tue, 9 Jul 2019 21:04:16 +0000 (22:04 +0100)
commit e406f12dde1a8375d77ea02d91f313fb1a9c6aec upstream.

mddev->sync_thread can be set to NULL on kzalloc failure downstream.
The patch checks for such a scenario and frees allocated resources.

Committer node:

Added similar fix to raid5.c, as suggested by Guoqing.

Acked-by: Guoqing Jiang <gqjiang@suse.com>
Signed-off-by: Aditya Pakki <pakki001@umn.edu>
Signed-off-by: Song Liu <songliubraving@fb.com>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/md/raid10.c
drivers/md/raid5.c

index 715dd5eed08c9c19ba61ae84cd3bc65e23146d88..cbe36396c371f3fb65508b1c2146e5de764f9c0e 100644 (file)
@@ -3820,6 +3820,8 @@ static int run(struct mddev *mddev)
                set_bit(MD_RECOVERY_RUNNING, &mddev->recovery);
                mddev->sync_thread = md_register_thread(md_do_sync, mddev,
                                                        "reshape");
+               if (!mddev->sync_thread)
+                       goto out_free_conf;
        }
 
        return 0;
index affe5d3e768b84aa4499ccccf10d310219603113..1dae2b025159e3834aa3ca0b8e3fc32136acd746 100644 (file)
@@ -6180,6 +6180,8 @@ static int run(struct mddev *mddev)
                set_bit(MD_RECOVERY_RUNNING, &mddev->recovery);
                mddev->sync_thread = md_register_thread(md_do_sync, mddev,
                                                        "reshape");
+               if (!mddev->sync_thread)
+                       goto abort;
        }