md: simplify export_array()
authorNeilBrown <neilb@suse.de>
Thu, 25 Sep 2014 07:43:47 +0000 (17:43 +1000)
committerNeilBrown <neilb@suse.de>
Tue, 14 Oct 2014 02:08:28 +0000 (13:08 +1100)
We don't really need that for_each loop, or those MD_BUGs.

Signed-off-by: NeilBrown <neilb@suse.de>
drivers/md/md.c

index 73451f3..d96aa80 100644 (file)
@@ -2187,17 +2187,13 @@ static void kick_rdev_from_array(struct md_rdev * rdev)
 
 static void export_array(struct mddev *mddev)
 {
-       struct md_rdev *rdev, *tmp;
+       struct md_rdev *rdev;
 
-       rdev_for_each_safe(rdev, tmp, mddev) {
-               if (!rdev->mddev) {
-                       MD_BUG();
-                       continue;
-               }
+       while (!list_empty(&mddev->disks)) {
+               rdev = list_first_entry(&mddev->disks, struct md_rdev,
+                                       same_set);
                kick_rdev_from_array(rdev);
        }
-       if (!list_empty(&mddev->disks))
-               MD_BUG();
        mddev->raid_disks = 0;
        mddev->major_version = 0;
 }