A storage system, such as a file server, receives a request to perform a
write operation that affects a data block. In response, the storage
system determines if the data block may be compressed to fit inside a
redundancy block for protection. If the data block may be sufficiently
compressed, the data block is written to the storage device and the
compressed version of the data block is written to the protection block.
If the data block may not be sufficiently compressed, the data block is
written to the storage device and another data protection scheme, e.g.
parity, is used to protect the data. A map, checksum and/or other
tracking technique is used to associate stripes of data with the
protection scheme used to protect data in the stripe.