]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/md/linear.c
md: use list_for_each_entry macro directly
[karo-tx-linux.git] / drivers / md / linear.c
index 190147c79e79fbbe9b0e2c0935aa7ac697464a1b..1e3aea9eecf18009f4ff0bc2e4c474914e1bcf74 100644 (file)
@@ -105,7 +105,6 @@ static linear_conf_t *linear_conf(mddev_t *mddev, int raid_disks)
        int i, nb_zone, cnt;
        sector_t min_sectors;
        sector_t curr_sector;
-       struct list_head *tmp;
 
        conf = kzalloc (sizeof (*conf) + raid_disks*sizeof(dev_info_t),
                        GFP_KERNEL);
@@ -115,7 +114,7 @@ static linear_conf_t *linear_conf(mddev_t *mddev, int raid_disks)
        cnt = 0;
        conf->array_sectors = 0;
 
-       rdev_for_each(rdev, tmp, mddev) {
+       list_for_each_entry(rdev, &mddev->disks, same_set) {
                int j = rdev->raid_disk;
                dev_info_t *disk = conf->disks + j;
 
@@ -148,6 +147,8 @@ static linear_conf_t *linear_conf(mddev_t *mddev, int raid_disks)
 
        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.