|  | Choose largest LSN among ToUndo. |  | If this LSN is a CLR and undonextLSN==NULL 
|  | Write an End record for this Xact. |  |  | If this LSN is a CLR, and undonextLSN != NULL 
|  | Add undonextLSN to ToUndo |  | (Q: what happens to other CLRs?) |  |  |  | Else this LSN is an update.  Undo the update, write a CLR, add prevLSN to ToUndo. |  |  |  |