A storage system, comprising at least one processor and memory, the storage system providing data storage for at least one storage object and a clone of the storage object, the storage system being configured to manage data on the storage system by: receiving a write allocation for a data block of the clone of the storage object, wherein the clone comprises a plurality of data blocks and is based on the storage object, and wherein each data block comprises a physical address pointer to a location within a storage aggregate and a virtual address pointer to a location within an address space of the clone of the storage object; determining (i) if the data block of the clone is shared with at least one data block of the storage object, and (ii) if a write allocation of another data block of the clone comprising the same virtual address pointer has been received or not; assigning a new pointer to the physical address pointer of the data block of the clone based upon the data block of the clone being shared with at least one data block of the storage object and based upon a write allocation of another data block of the clone comprising the same virtual address pointer not having been received; and not assigning a new pointer to the physical address pointer of the data block of the clone, and assigning a physical address pointer from a data block map of the clone of the storage object paired with the virtual address pointer corresponding to the virtual address pointer of the data block based upon the data block of the clone being shared with at least one data block of the storage object and based upon a write allocation of another data block of the clone comprising the same virtual address pointer having been received. receiving a write allocation for a data block of the clone of the storage object, wherein the clone comprises a plurality of data blocks and is based on the storage object, and wherein each data block comprises a physical address pointer to a location within a storage aggregate and a virtual address pointer to a location within an address space of the clone of the storage object; determining (i) if the data block of the clone is shared with at least one data block of the storage object, and (ii) if a write allocation of another data block of the clone comprising the same virtual address pointer has been received or not; assigning a new pointer to the physical address pointer of the data block of the clone based upon the data block of the clone being shared with at least one data block of the storage object and based upon a write allocation of another data block of the clone comprising the same virtual address pointer not having been received; and not assigning a new pointer to the physical address pointer of the data block of the clone, and assigning a physical address pointer from a data block map of the clone of the storage object paired with the virtual address pointer corresponding to the virtual address pointer of the data block based upon the data block of the clone being shared with at least one data block of the storage object and based upon a write allocation of another data block of the clone comprising the same virtual address pointer having been received.