Signed-off-by: Sandeep K Sinha <sandeepksinha@xxxxxxxxx> Date: Fri May 22 13:46:56 2009 +0530 Protecting mddev with barriers to avoid races. diff --git a/drivers/md/linear.c b/drivers/md/linear.c index 9ad6ec4..e2dbda8 100644 --- a/drivers/md/linear.c +++ b/drivers/md/linear.c @@ -28,10 +28,12 @@ static inline dev_info_t *which_dev(mddev_t *mddev, sector_t sector) { int lo, mid, hi; - linear_conf_t *conf = mddev_to_conf(mddev); + linear_conf_t *conf; lo = 0; hi = mddev->raid_disks - 1; + barrier(); + conf = mddev_to_conf(mddev); /* * Binary Search @@ -223,6 +225,7 @@ static int linear_add(mddev_t *mddev, mdk_rdev_t *rdev) newconf->prev = mddev_to_conf(mddev); mddev->private = newconf; + barrier(); mddev->raid_disks++; md_set_array_sectors(mddev, linear_size(mddev, 0, 0)); set_capacity(mddev->gendisk, mddev->array_sectors); -- Regards, Sandeep. “To learn is to change. Education is a process that changes the learner.” -- 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