Merge tag 'md/4.0-fixes' of git://neil.brown.name/md
[firefly-linux-kernel-4.4.55.git] / drivers / md / raid0.c
index 3770c9675b1748b2b2db5a434144fcea1a096952..a13f738a7b39f60fa340dec21612cf25b99570a7 100644 (file)
@@ -415,7 +415,7 @@ static sector_t raid0_size(struct mddev *mddev, sector_t sectors, int raid_disks
        return array_sectors;
 }
 
-static int raid0_stop(struct mddev *mddev);
+static void raid0_free(struct mddev *mddev, void *priv);
 
 static int raid0_run(struct mddev *mddev)
 {
@@ -468,21 +468,18 @@ static int raid0_run(struct mddev *mddev)
 
        ret = md_integrity_register(mddev);
        if (ret)
-               raid0_stop(mddev);
+               raid0_free(mddev, conf);
 
        return ret;
 }
 
-static int raid0_stop(struct mddev *mddev)
+static void raid0_free(struct mddev *mddev, void *priv)
 {
-       struct r0conf *conf = mddev->private;
+       struct r0conf *conf = priv;
 
-       blk_sync_queue(mddev->queue); /* the unplug fn references 'conf'*/
        kfree(conf->strip_zone);
        kfree(conf->devlist);
        kfree(conf);
-       mddev->private = NULL;
-       return 0;
 }
 
 /*
@@ -716,7 +713,7 @@ static struct md_personality raid0_personality=
        .owner          = THIS_MODULE,
        .make_request   = raid0_make_request,
        .run            = raid0_run,
-       .stop           = raid0_stop,
+       .free           = raid0_free,
        .status         = raid0_status,
        .size           = raid0_size,
        .takeover       = raid0_takeover,