Abstract: Systems and methods for improved caching with data recovery are disclosed. A write input/output (I/O) request is received from an application to write to a storage area network (SAN) LUN that is cached by a first intelligent storage adapter (ISA) using a cache LUN and mirrored by a second ISA using a mirror LUN. Write through caching is enabled, when either the first ISA or the second ISA has failed. The write I/O request is proceed by a surviving ISA from among the first ISA and the second ISA, where the surviving ISA sends the write I/O to the SAN LUN. Data is copied from a local storage device of the surviving ISA to a recovery LUN; and periodically data is also flushed from the local storage of the surviving ISA to the SAN LUN.