1. A method for tracking changes made to a virtual disk of a virtual machine running on a computer system, the method comprising: receiving a request to write data to a first virtual block of the virtual disk, wherein the virtual disk contains a plurality of virtual blocks whose data is stored in blocks of a storage subsystem; mapping a first write command to the first virtual block to a second write command to a first block of the storage subsystem; sending, from a virtualization layer, the second write command to the storage subsystem; receiving, at the virtualization software layer, a write completion response from the storage subsystem; and based on the write completion response, maintaining tracking information with the virtualization software layer, wherein the tracking information indicates whether each of the plurality of virtual blocks has been written to since an event.