* 'for-linus' of git://neil.brown.name/md:
md: linear: Fix a division by zero bug for very small arrays.
md: fix bug in raid10 recovery.
md: revert the recent addition of a call to the BLKRRPART ioctl.
min_sectors = conf->array_sectors;
sector_div(min_sectors, PAGE_SIZE/sizeof(struct dev_info *));
+ if (min_sectors == 0)
+ min_sectors = 1;
/* min_sectors is the minimum spacing that will fit the hash
* table in one PAGE. This may be much smaller than needed.
if (mode == 0) {
mdk_rdev_t *rdev;
struct list_head *tmp;
- struct block_device *bdev;
printk(KERN_INFO "md: %s stopped.\n", mdname(mddev));
mddev->degraded = 0;
mddev->barriers_work = 0;
mddev->safemode = 0;
- bdev = bdget_disk(mddev->gendisk, 0);
- if (bdev) {
- blkdev_ioctl(bdev, 0, BLKRRPART, 0);
- bdput(bdev);
- }
kobject_uevent(&disk_to_dev(mddev->gendisk)->kobj, KOBJ_CHANGE);
} else if (mddev->pers)
if (!enough(conf))
return -EINVAL;
- if (rdev->raid_disk)
+ if (rdev->raid_disk >= 0)
first = last = rdev->raid_disk;
if (rdev->saved_raid_disk >= 0 &&