[bug report] md: Remove deprecated CONFIG_MD_MULTIPATH

Dan Carpenter <[email protected]>
Newsgroups gmane.linux.raid
Message-ID <[email protected]>
Hello Song Liu,

Commit d8730f0cf4ef ("md: Remove deprecated CONFIG_MD_MULTIPATH")
from Dec 14, 2023 (linux-next), leads to the following Smatch static
checker warning:

	drivers/md/md.c:3912 analyze_sbs()
	warn: iterator 'i' not incremented

drivers/md/md.c
    3883 static int analyze_sbs(struct mddev *mddev)
    3884 {
    3885         int i;
    3886         struct md_rdev *rdev, *freshest, *tmp;
    3887 
    3888         freshest = NULL;
    3889         rdev_for_each_safe(rdev, tmp, mddev)
    3890                 switch (super_types[mddev->major_version].
    3891                         load_super(rdev, freshest, mddev->minor_version)) {
    3892                 case 1:
    3893                         freshest = rdev;
    3894                         break;
    3895                 case 0:
    3896                         break;
    3897                 default:
    3898                         pr_warn("md: fatal superblock inconsistency in %pg -- removing from array\n",
    3899                                 rdev->bdev);
    3900                         md_kick_rdev_from_array(rdev);
    3901                 }
    3902 
    3903         /* Cannot find a valid fresh disk */
    3904         if (!freshest) {
    3905                 pr_warn("md: cannot find a valid disk\n");
    3906                 return -EINVAL;
    3907         }
    3908 
    3909         super_types[mddev->major_version].
    3910                 validate_super(mddev, NULL/*freshest*/, freshest);
    3911 
--> 3912         i = 0;
    3913         rdev_for_each_safe(rdev, tmp, mddev) {
    3914                 if (mddev->max_disks &&
    3915                     (rdev->desc_nr >= mddev->max_disks ||
    3916                      i > mddev->max_disks)) {
                              ^^^^^^^^^^^^^^^^^^^^
The patch deleted the i++ so i is always zero.

    3917                         pr_warn("md: %s: %pg: only %d devices permitted\n",
    3918                                 mdname(mddev), rdev->bdev,
    3919                                 mddev->max_disks);
    3920                         md_kick_rdev_from_array(rdev);
    3921                         continue;
    3922                 }
    3923                 if (rdev != freshest) {
    3924                         if (super_types[mddev->major_version].
    3925                             validate_super(mddev, freshest, rdev)) {
    3926                                 pr_warn("md: kicking non-fresh %pg from array!\n",
    3927                                         rdev->bdev);
    3928                                 md_kick_rdev_from_array(rdev);
    3929                                 continue;
    3930                         }
    3931                 }
    3932                 if (rdev->raid_disk >= (mddev->raid_disks - min(0, mddev->delta_disks)) &&
    3933                     !test_bit(Journal, &rdev->flags)) {
    3934                         rdev->raid_disk = -1;
    3935                         clear_bit(In_sync, &rdev->flags);
    3936                 }
    3937         }
    3938 
    3939         return 0;
    3940 }

regards,
dan carpenter
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.