Patent ID: 6883114

Claim:
A method for writing or otherwise changing data in a non-volatile storage device supported by a block device driver so as to provide ruggedized operation, the method comprising the steps of: (a) sending a command to the device driver for defining current data contents of the storage device as a fall-back state in case of failure; (b) sending a sequence of one or more commands to the device driver, each command potentially changing the data contents of the device; and (c) sending a command to the device driver for defining the resulting data contents of the storage device as a new fall-back state in case of failure; wherein if a failure occurs after step (a) but before the completion of step (c), the device driver rolls back the effects of all said commands issued in step (b) and returns the storage device to contain said data contents defined as a fall-back state in step (a); and wherein the device driver identifies data associated with said commands conducted after establishing said fall-back state, by establishing chains of physical blocks associated with the driver's virtual blocks, and storing all new data in said physical blocks, such that said new data is stored in said physical blocks that are not the first blocks in said chains of physical blocks.