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()

+5 -2
+4 -2
drivers/md/md.c
··· 1337 1337 md_super_write(rdev->mddev, rdev, rdev->sb_start, rdev->sb_size, 1338 1338 rdev->sb_page); 1339 1339 md_super_wait(rdev->mddev); 1340 - return num_sectors / 2; /* kB for sysfs */ 1340 + return num_sectors; 1341 1341 } 1342 1342 1343 1343 ··· 1704 1704 md_super_write(rdev->mddev, rdev, rdev->sb_start, rdev->sb_size, 1705 1705 rdev->sb_page); 1706 1706 md_super_wait(rdev->mddev); 1707 - return num_sectors / 2; /* kB for sysfs */ 1707 + return num_sectors; 1708 1708 } 1709 1709 1710 1710 static struct super_type super_types[] = { ··· 4338 4338 if (mddev->kobj.sd && 4339 4339 sysfs_create_group(&mddev->kobj, &md_bitmap_group)) 4340 4340 printk(KERN_DEBUG "pointless warning\n"); 4341 + 4342 + blk_queue_flush(mddev->queue, REQ_FLUSH | REQ_FUA); 4341 4343 abort: 4342 4344 mutex_unlock(&disks_mutex); 4343 4345 if (!error && mddev->kobj.sd) {
+1
drivers/md/raid1.c
··· 1161 1161 * is not possible. 1162 1162 */ 1163 1163 if (!test_bit(Faulty, &rdev->flags) && 1164 + !mddev->recovery_disabled && 1164 1165 mddev->degraded < conf->raid_disks) { 1165 1166 err = -EBUSY; 1166 1167 goto abort;