On Friday July 15, ftaylor@xxxxxxxxxx wrote: > I am doing some RAID scenarios on a single disc (testing purposes) on > RHEL4. I have some partitions as follows: > > /dev/hda5 100M > /dev/hda6 200M > /dev/hda7 200M > /dev/hda8 200M > /dev/hda9 200M > > I create a RAID 5 set with /dev/hda{5,6,7,8}. I fail/remove /dev/hda5 > and add /dev/hda9, at which point I can grow the RAID. Running: > > mdadm -G /dev/md0 -z max > > will increase the RAID size, however, it sets off a infinite resync. I > have tested with mdadm-1.6.0-2, and with mdadm-1.12.0-1 rebuilt from the > source rpm. What kernel were you running? There were problems with looping resyncs, but I think they have been fixed. I just repeated your experiment on 2.6.13-rc1-mm1 and didn't get an infinite loop, but it took < 1second to sync the second 200M, whereas the first 100M took 7 seconds, so I'm a bit worried... Ahh, found the problem. The following patch is required to make it resync properly, and with it the experiment does what is expected. Thanks for helping me find that. NeilBrown Signed-off-by: Neil Brown <neilb@xxxxxxxxxxxxxxx> ### Diffstat output ./drivers/md/md.c | 1 + 1 files changed, 1 insertion(+) diff ./drivers/md/md.c~current~ ./drivers/md/md.c --- ./drivers/md/md.c~current~ 2005-07-16 14:41:19.000000000 +1000 +++ ./drivers/md/md.c 2005-07-16 14:41:21.000000000 +1000 @@ -2580,6 +2580,7 @@ static int update_array_info(mddev_t *md if (avail < ((sector_t)info->size << 1)) return -ENOSPC; } + mddev->resync_max_sectors = (sector_t)info->size *2; /*default */ rv = mddev->pers->resize(mddev, (sector_t)info->size *2); if (!rv) { struct block_device *bdev; - 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