A file server maintains a production file system supported by a clone volume,
and
multiple snapshot file systems supported by respective save volumes in a snapshot
queue. Before a data block is modified for the first time after creation of the
youngest snapshot, the data block is copied from the clone volume to the save volume
of the youngest snapshot. A bit map indicates the blocks that have already been
copied, and a block map shows the save block address for each corresponding clone
block address. When a new snapshot is created, the bit and block maps are converted
to a hash index that is kept linked to the save volume of what had been the youngest
snapshot. When other than the oldest snapshot file system is deleted, the respective
save volume is retained as a hidden object until it becomes the oldest save volume.