md/raid10: another memory leak due to reshape.
authorNeilBrown <neilb@suse.de>
Sat, 23 Aug 2014 10:19:26 +0000 (20:19 +1000)
committerNeilBrown <neilb@suse.de>
Tue, 14 Oct 2014 02:08:28 +0000 (13:08 +1100)
Signed-off-by: NeilBrown <neilb@suse.de>
drivers/md/raid10.c

index a2788bcf75b25ac456f993b3a03cd33bdc3acb71..8fa37eceaef3261cca843db6da6e29cf8e3a9124 100644 (file)
@@ -3834,6 +3834,8 @@ static int stop(struct mddev *mddev)
                mempool_destroy(conf->r10bio_pool);
        safe_put_page(conf->tmppage);
        kfree(conf->mirrors);
+       kfree(conf->mirrors_old);
+       kfree(conf->mirrors_new);
        kfree(conf);
        mddev->private = NULL;
        return 0;
@@ -4121,7 +4123,7 @@ static int raid10_start_reshape(struct mddev *mddev)
                memcpy(conf->mirrors_new, conf->mirrors,
                       sizeof(struct raid10_info)*conf->prev.raid_disks);
                smp_mb();
-               kfree(conf->mirrors_old); /* FIXME and elsewhere */
+               kfree(conf->mirrors_old);
                conf->mirrors_old = conf->mirrors;
                conf->mirrors = conf->mirrors_new;
                conf->mirrors_new = NULL;