1. A Redundant Array of Inexpensive Disks (RAID) controller, comprising: a RAID error correction code (ECC) encoder module that receives data for storage and generates code words stored by data drives and one or more parity drives, wherein said data drives and said one or more parity drives have physical locations, wherein said code words are generated based on said data and a cyclic code generator polynomial, and wherein logical locations correspond to an index of said cyclic code generator polynomial; a mapping module that maps said physical locations of said data drives and said one or more parity drives to said logical locations; and a difference generating module that generates a difference code word when data on one of said data drives is modified, wherein said RAID ECC encoder module encodes said difference code word and adds said encoded difference code word to an original code word generated before said modification.