public inbox for linux-raid@vger.kernel.org
 help / color / mirror / Atom feed
* [bug report] md: Remove deprecated CONFIG_MD_MULTIPATH
@ 2025-12-15  7:58 Dan Carpenter
  2025-12-15 12:40 ` Li Nan
  0 siblings, 1 reply; 3+ messages in thread
From: Dan Carpenter @ 2025-12-15  7:58 UTC (permalink / raw)
  To: Song Liu; +Cc: linux-raid

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

^ permalink raw reply	[flat|nested] 3+ messages in thread
* [bug report] md: Remove deprecated CONFIG_MD_MULTIPATH
@ 2024-05-04 11:23 Dan Carpenter
  0 siblings, 0 replies; 3+ messages in thread
From: Dan Carpenter @ 2024-05-04 11:23 UTC (permalink / raw)
  To: song; +Cc: linux-raid

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:3862 analyze_sbs()
	warn: iterator 'i' not incremented

drivers/md/md.c
    3861 
--> 3862         i = 0;
    3863         rdev_for_each_safe(rdev, tmp, mddev) {
    3864                 if (mddev->max_disks &&
    3865                     (rdev->desc_nr >= mddev->max_disks ||
    3866                      i > mddev->max_disks)) {
                              ^
There used to be an i++ but that patch deleted it.  Should i just be
deleted?

    3867                         pr_warn("md: %s: %pg: only %d devices permitted\n",
    3868                                 mdname(mddev), rdev->bdev,
    3869                                 mddev->max_disks);
    3870                         md_kick_rdev_from_array(rdev);
    3871                         continue;
    3872                 }
    3873                 if (rdev != freshest) {
    3874                         if (super_types[mddev->major_version].
    3875                             validate_super(mddev, freshest, rdev)) {
    3876                                 pr_warn("md: kicking non-fresh %pg from array!\n",
    3877                                         rdev->bdev);
    3878                                 md_kick_rdev_from_array(rdev);
    3879                                 continue;
    3880                         }
    3881                 }
    3882                 if (rdev->raid_disk >= (mddev->raid_disks - min(0, mddev->delta_disks)) &&
    3883                     !test_bit(Journal, &rdev->flags)) {
    3884                         rdev->raid_disk = -1;
    3885                         clear_bit(In_sync, &rdev->flags);
    3886                 }
    3887         }
    3888 
    3889         return 0;
    3890 }

regards,
dan carpenter

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2025-12-15 12:40 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-15  7:58 [bug report] md: Remove deprecated CONFIG_MD_MULTIPATH Dan Carpenter
2025-12-15 12:40 ` Li Nan
  -- strict thread matches above, loose matches on Subject: below --
2024-05-04 11:23 Dan Carpenter

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox