RAID1 Array corruption when adding an extra device with mdadm
I've got a system running 2.6.14.6 with a raid1 array of 2 disks.
The size of the array is as follows (from mdadm --detail):
Raid Level : raid1
Array Size : 28314496 (27.00 GiB 28.99 GB)
Device Size : 28314496 (27.00 GiB 28.99 GB)
Raid Devices : 2
Total Devices : 2
I'm trying to add an extra disk to make a three-way mirror using mdadm:
mdadm --grow /dev/md0 -n 3
When I do this, the disk gets added (so there are 3 raid devices) --BUT-- also, the Array Size changes to 3.0 GB. If I immediately reboot, things end up ok, but if I let it run it destroys the array contents.
This happened under mdadm v2.1 and 2.2. I hacked mdadm to print out what it's doing, and things look ok in Manage_resize() until the mdu_array_info_t structure is updated using ioctl (SET_ARRAY_INFO), then the above mentioned size change happens.
Does anyone know what's up with this?
Thanks,
-Bill