On Thursday March 23, dledford@xxxxxxxxxx wrote: > The code that checks all the devices in an array and tries to fit a grow > request to the largest possible value is broken and will only do this > successfully if the first element of the array isn't <= all other elements > in the array. Not re-initializing the fit variable with each loop of the > check solves the problems. Ahh...yes, thanks. Not quite critical enough to get into 2.6.16.1 I suspect, but I'll make sure it heads upstream for 2.6.17. Thanks again, NeilBrown > > Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx> > > -- > Doug Ledford <dledford@xxxxxxxxxx> 919-754-3700 x44233 > Red Hat, Inc. > 1801 Varsity Dr. > Raleigh, NC 27606 > > --- linux-2.6.9/drivers/md/md.c.save 2006-03-22 18:32:38.000000000 -0500 > +++ linux-2.6.9/drivers/md/md.c 2006-03-22 18:33:40.000000000 -0500 > @@ -2426,6 +2426,7 @@ > if (mddev->size != info->size) { > mdk_rdev_t * rdev; > struct list_head *tmp; > + int fit = (info->size == 0); > if (mddev->pers->resize == NULL) > return -EINVAL; > /* The "size" is the amount of each device that is used. > @@ -2442,7 +2443,6 @@ > return -EBUSY; > ITERATE_RDEV(mddev,rdev,tmp) { > sector_t avail; > - int fit = (info->size == 0); > if (rdev->sb_offset > rdev->data_offset) > avail = (rdev->sb_offset*2) - rdev->data_offset; > else - 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