Patch 2.6.32.28 to 2.6.32.32
/drivers/md/md.c
blob:697a2c7bff2c2fd490b431d6466f2d92b8c016a2 -> blob:01470794d9c31dc2368b3304560580904756b02c
--- drivers/md/md.c
+++ drivers/md/md.c
@@ -305,9 +305,6 @@ static mddev_t * mddev_find(dev_t unit)
{
mddev_t *mddev, *new = NULL;
- if (unit && MAJOR(unit) != MD_MAJOR)
- unit &= ~((1<<MdpMinorShift)-1);
-
retry:
spin_lock(&all_mddevs_lock);
@@ -1125,7 +1122,7 @@ super_90_rdev_size_change(mdk_rdev_t *rd
md_super_write(rdev->mddev, rdev, rdev->sb_start, rdev->sb_size,
rdev->sb_page);
md_super_wait(rdev->mddev);
- return num_sectors;
+ return num_sectors / 2; /* kB for sysfs */
}
@@ -1488,7 +1485,7 @@ super_1_rdev_size_change(mdk_rdev_t *rde
md_super_write(rdev->mddev, rdev, rdev->sb_start, rdev->sb_size,
rdev->sb_page);
md_super_wait(rdev->mddev);
- return num_sectors;
+ return num_sectors / 2; /* kB for sysfs */
}
static struct super_type super_types[] = {
@@ -3962,6 +3959,9 @@ static int md_alloc(dev_t dev, char *nam
goto abort;
mddev->queue->queuedata = mddev;
+ /* Can be unlocked because the queue is new: no concurrency */
+ queue_flag_set_unlocked(QUEUE_FLAG_CLUSTER, mddev->queue);
+
blk_queue_make_request(mddev->queue, md_make_request);
disk = alloc_disk(1 << shift);
@@ -4802,21 +4802,17 @@ static int add_new_disk(mddev_t * mddev,
PTR_ERR(rdev));
return PTR_ERR(rdev);
}
- /* set saved_raid_disk if appropriate */
+ /* set save_raid_disk if appropriate */
if (!mddev->persistent) {
if (info->state & (1<<MD_DISK_SYNC) &&
- info->raid_disk < mddev->raid_disks) {
+ info->raid_disk < mddev->raid_disks)
rdev->raid_disk = info->raid_disk;
- set_bit(In_sync, &rdev->flags);
- } else
+ else
rdev->raid_disk = -1;
} else
super_types[mddev->major_version].
validate_super(mddev, rdev);
- if (test_bit(In_sync, &rdev->flags))
- rdev->saved_raid_disk = rdev->raid_disk;
- else
- rdev->saved_raid_disk = -1;
+ rdev->saved_raid_disk = rdev->raid_disk;
clear_bit(In_sync, &rdev->flags); /* just to be sure */
if (info->state & (1<<MD_DISK_WRITEMOSTLY))