1 of 9

This is explained in detail in The Mars Rover Spirit FLASH Anomaly, Glenn Reeves & Tracy Neilson, Jet Propulsion Laboratory (JPL), 2004 (PDF). So by the same author than of that message that you link to, just seven years later. The fix was quite a feat and I'm afraid I don't know how to present it concisely, so I'm reproducing here its most descriptive parts relevant to your question - the anomaly events and recovery timeline and operational changes - and I'd recommend reading the rest of it from the source:

enter image description here

The anomaly team recommended, and the project adopted, the following changes and guidelines. These apply to both rovers.

  • Monitor the amount of free memory space in the system. If the remaining space drops to 800 Kbytes or less, then terminate all science and engineering activities.

  • Aggressively command the deletion of received data products after they have been received on Earth. The data management team has reduced the latency for this action from 48 to 24 hours.

  • Remove subdirectories when no more data product files exist. This action forces the release of memory used to represent the subdirectory and eliminates the space utilized for deleted file entries. This operational guideline became unnecessary once the FSW was updated in April.

  • Permanently upgrade the priority of the data products that contain the telemetry generated during initialization that shows the free system memory space and the results of the autonomous file system check.

Onboard Post-Anomaly FSW Changes

Several FSW changes were included in the April 2004 FSW load to address the problems and issues discovered during the anomaly investigation. These changes included:

  • Additional logic to remove the directory list structure entries for deleted files. This change “compacts” the directory list structure and thus, removes the “high water mark” effect. This compaction action runs during the initialization process before the FLASH file system is mounted.

  • Additional logic to autonomously enter crippled mode when multiple resets have occurred. This autonomous action allows the system to initialize correctly if another similar anomaly should occur.

  • Modifications to the shutdown logic to use the alarm clock hardware function as a secondary watchdog. This change forces a power cycle of the avionics electronics in cases where the FSW cannot perform all of the shutdown actions. If this occurs during the night, the vehicle will remain powered off until sunrise.

  • The register set by the crippled command is volatile and the value is not retained across power cycles. The FSW was changed to also examine one of the spare non-volatile registers bits, so the operations team may permanently force the system to initialize in crippled mode, if necessary.

  • Modified the shutdown logic to wait a limited amount of time for the FLASH file system to become idle. In the previous FSW version, the shutdown logic would wait indefinitely. This change addressed the semaphore/deadlock issue discovered during the anomaly investigation.