Patent ID: 6912686

Claim:
In a data storage system, a method for detecting errors in data to be stored within the data storage system, the method comprising the steps of: receiving the data at the data storage system by (i) receiving a portion of data, (ii) generating data portion error checking information for the portion of data, and (iii) repeating the steps of receiving a portion of data and generating data portion error checking information until all portions of data are received that constitute an application data block upon which an application that originates the application data block has computed application error checking information, the data portion error checking information being an N-byte checksum value generated in the data storage system for each portion of data that is received, the application error checking information being an M-byte checksum value computed by the application on all portions of data that constitute the application data block; receiving the application error checking information at the data storage system; generating data storage error checking information on the data by computing an N-byte value for the data storage error checking information by performing an exclusive-or on all N-byte checksum values for all portions of data that are received that constitute the application data block, wherein N is different from M such that the format of the application error checking information is incompatible with the format of the data storage error checking information and cannot be compared therewith; converting each application error checking information M-byte value into a corresponding N-byte value such that the application error checking information is in a compatible format with and can be compared with the data storage error checking information; comparing the application error checking information, in the format that is compatible with the data storage error checking information, to the data storage error checking information to determine if the data contains an error upon receipt; if the data contains an error, providing an indication of the error; and if the data does not contain an error, storing the data within the data storage system.