Re: [PATCH 3/3] md-cluster: Perform a lazy update

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Goldwyn,

[auto build test results on v4.3-rc3 -- if it's inappropriate base, please ignore]

reproduce:
  # apt-get install sparse
  make ARCH=x86_64 allmodconfig
  make C=1 CF=-D__CHECK_ENDIAN__


sparse warnings: (new ones prefixed by >>)

   drivers/md/md.c:1480:34: sparse: cast to restricted __le64
   drivers/md/md.c:1760:40: sparse: incorrect type in assignment (different base types)
   drivers/md/md.c:1760:40:    expected unsigned long long [unsigned] [long] [long long] [usertype] <noident>
   drivers/md/md.c:1760:40:    got restricted __le64 [usertype] <noident>
   drivers/md/md.c:1835:26: sparse: incorrect type in assignment (different base types)
   drivers/md/md.c:1835:26:    expected restricted __le64 [usertype] super_offset
   drivers/md/md.c:1835:26:    got unsigned long [unsigned] [usertype] sb_start
   drivers/md/md.c:2230:43: sparse: cast to restricted __le64
>> drivers/md/md.c:2230:43: sparse: cast from restricted __le32
>> drivers/md/md.c:2199:6: sparse: symbol 'does_sb_need_changing' was not declared. Should it be static?
   drivers/md/md.c:7061:6: sparse: symbol '__md_error' was not declared. Should it be static?

Please review and possibly fold the followup patch.

vim +2230 drivers/md/md.c

  2193				sync_super(mddev, rdev);
  2194				rdev->sb_loaded = 1;
  2195			}
  2196		}
  2197	}
  2198	
> 2199	bool does_sb_need_changing(struct mddev *mddev)
  2200	{
  2201		struct md_rdev *rdev;
  2202		struct mdp_superblock_1 *sb;
  2203		int role;
  2204	
  2205		/* Find a good rdev */
  2206		rdev_for_each_rcu(rdev, mddev)
  2207			if ((rdev->raid_disk >= 0) && !test_bit(Faulty, &rdev->flags))
  2208				break;
  2209	
  2210		/* No good device found. */
  2211		if (!rdev)
  2212			return false;
  2213	
  2214		sb = page_address(rdev->sb_page);
  2215		/* Check if a device has become faulty or a spare become active */
  2216		rdev_for_each(rdev, mddev) {
  2217			role = le16_to_cpu(sb->dev_roles[rdev->desc_nr]);
  2218			/* Device activated? */
  2219			if (role == 0xffff && rdev->raid_disk >=0 && !test_bit(Faulty, &rdev->flags))
  2220				return true;
  2221			/* Device turned faulty? */
  2222			if (test_bit(Faulty, &rdev->flags) && (role < 0xfffd))
  2223				return true;
  2224		}
  2225	
  2226		/* Check if any mddev parameters have changed */
  2227		if ((mddev->dev_sectors != le64_to_cpu(sb->size)) ||
  2228				(mddev->reshape_position != le64_to_cpu(sb->reshape_position)) ||
  2229				(mddev->recovery_cp != le64_to_cpu(sb->resync_offset)) ||
> 2230				(mddev->layout != le64_to_cpu(sb->layout)) ||
  2231				(mddev->raid_disks != le32_to_cpu(sb->raid_disks)) ||
  2232				(mddev->chunk_sectors != le32_to_cpu(sb->chunksize))
  2233				 )

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux