1. A computer program product comprising a tangible, non-transitory computer-readable medium having embodied therein a computer program for cloning a filesystem object in a file storage system, the filesystem object including a root node, an indirect node, at least one data block and a set of pointers being stored in the root node of the filesystem object, wherein the set of pointers of the root node of the filesystem object references the at least one data block via the indirect node referenced to by the set of pointers of the root node of the filesystem object, the computer program including instructions that, when run on a computer processor of the file storage system, causes the computer processor to perform processes comprising: creating, in the file storage system, a first snapshot object and storing a copy of the set of pointers of the filesystem object in the first snapshot object; and creating, in the file storage system, a writable clone object and storing a copy of the set of pointers of the filesystem object in the writable clone object; wherein each of the first snapshot object and the writable clone object includes a respective root node to which the set of pointers of the root node of the filesystem object are copied, wherein the set of pointers of the root node of the filesystem object, the set of pointers of the root node of the first snapshot object, and the set of pointers of the root node of the writable clone object reference to the same indirect node so that the first snapshot object and the writable clone object share the referenced indirect node and the at least one referenced data block with the filesystem object, wherein the filesystem object and the writable clone object become writable versions of the first snapshot object and store changes from a copy of the object represented by the first snapshot object; and wherein metadata for managing the first snapshot object stores a reference count indicating a number of objects referencing the first snapshot object.