]> asedeno.scripts.mit.edu Git - linux.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)
committerSong Liu <songliubraving@fb.com>
Tue, 12 Mar 2019 17:15:18 +0000 (10:15 -0700)
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.

Cc: stable@vger.kernel.org # v3.16+
Acked-by: Guoqing Jiang <gqjiang@suse.com>
Signed-off-by: Aditya Pakki <pakki001@umn.edu>
Signed-off-by: Song Liu <songliubraving@fb.com>
drivers/md/raid10.c
drivers/md/raid5.c

index ecef42bfe19d62b8374ff09ac3cd955578434a8d..3b6880dd648d26e6d588a09180d181587f5c40b8 100644 (file)
@@ -3939,6 +3939,8 @@ static int raid10_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 09562d7cc0803bf46a929abe46957dbbd21ba273..992fd08437d8f703a8461d36972182cf3415e74f 100644 (file)
@@ -7403,6 +7403,8 @@ static int raid5_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;
        }
 
        /* Ok, everything is just fine now */