Merge branch 'for-linus' of git://neil.brown.name/md
* 'for-linus' of git://neil.brown.name/md: md: Call blk_queue_flush() to establish flush/fua support md/raid1: really fix recovery looping when single good device fails. md: fix return value of rdev_size_change()
This commit is contained in:
@@ -1337,7 +1337,7 @@ super_90_rdev_size_change(mdk_rdev_t *rdev, sector_t num_sectors)
|
|||||||
md_super_write(rdev->mddev, rdev, rdev->sb_start, rdev->sb_size,
|
md_super_write(rdev->mddev, rdev, rdev->sb_start, rdev->sb_size,
|
||||||
rdev->sb_page);
|
rdev->sb_page);
|
||||||
md_super_wait(rdev->mddev);
|
md_super_wait(rdev->mddev);
|
||||||
return num_sectors / 2; /* kB for sysfs */
|
return num_sectors;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1704,7 +1704,7 @@ super_1_rdev_size_change(mdk_rdev_t *rdev, sector_t num_sectors)
|
|||||||
md_super_write(rdev->mddev, rdev, rdev->sb_start, rdev->sb_size,
|
md_super_write(rdev->mddev, rdev, rdev->sb_start, rdev->sb_size,
|
||||||
rdev->sb_page);
|
rdev->sb_page);
|
||||||
md_super_wait(rdev->mddev);
|
md_super_wait(rdev->mddev);
|
||||||
return num_sectors / 2; /* kB for sysfs */
|
return num_sectors;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct super_type super_types[] = {
|
static struct super_type super_types[] = {
|
||||||
@@ -4338,6 +4338,8 @@ static int md_alloc(dev_t dev, char *name)
|
|||||||
if (mddev->kobj.sd &&
|
if (mddev->kobj.sd &&
|
||||||
sysfs_create_group(&mddev->kobj, &md_bitmap_group))
|
sysfs_create_group(&mddev->kobj, &md_bitmap_group))
|
||||||
printk(KERN_DEBUG "pointless warning\n");
|
printk(KERN_DEBUG "pointless warning\n");
|
||||||
|
|
||||||
|
blk_queue_flush(mddev->queue, REQ_FLUSH | REQ_FUA);
|
||||||
abort:
|
abort:
|
||||||
mutex_unlock(&disks_mutex);
|
mutex_unlock(&disks_mutex);
|
||||||
if (!error && mddev->kobj.sd) {
|
if (!error && mddev->kobj.sd) {
|
||||||
|
@@ -1161,6 +1161,7 @@ static int raid1_remove_disk(mddev_t *mddev, int number)
|
|||||||
* is not possible.
|
* is not possible.
|
||||||
*/
|
*/
|
||||||
if (!test_bit(Faulty, &rdev->flags) &&
|
if (!test_bit(Faulty, &rdev->flags) &&
|
||||||
|
!mddev->recovery_disabled &&
|
||||||
mddev->degraded < conf->raid_disks) {
|
mddev->degraded < conf->raid_disks) {
|
||||||
err = -EBUSY;
|
err = -EBUSY;
|
||||||
goto abort;
|
goto abort;
|
||||||
|
Reference in New Issue
Block a user