diff --git a/drivers/md/md.c b/drivers/md/md.c index 8a68ff71fbbf82d042b69fb67ce8426a346dc256..1aa40509f90e02633ec7582459f884f0852a6e05 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c @@ -2483,14 +2483,16 @@ static void sync_sbs(struct mddev *mddev, int nospares) static bool does_sb_need_changing(struct mddev *mddev) { - struct md_rdev *rdev; + struct md_rdev *rdev = NULL, *iter; struct mdp_superblock_1 *sb; int role; /* Find a good rdev */ - rdev_for_each(rdev, mddev) - if ((rdev->raid_disk >= 0) && !test_bit(Faulty, &rdev->flags)) + rdev_for_each(iter, mddev) + if ((iter->raid_disk >= 0) && !test_bit(Faulty, &iter->flags)) { + rdev = iter; break; + } /* No good device found. */ if (!rdev)