Partial resync is supported since about 2.6.16 via 'bitmaps'. A 'bitmap' tracks which blocks of the device are potentially out-of-sync, and when a resync is needed, only those blocks are considered.
The bitmap can be stored 'internally' i.e. on each drive near the superblock, or externally in a file on another device.
There is some performance overhead as the bitmap has to be written to before the data can be written. Depending on workload, this can be un-noticable, or as much as 20%.
