I am confused about what Snapshot Copy Reserve actually stores. From what I understand, a snapshot copy is a copy of pointers which points to blocks on disk which were occupied by a file at some point in time. File blocks are stored on volume and pointers are stored on Snapshot Copy Reserve. When a file is modified, a new version of data from a modified block is written to another block (in volume). The original block stays in read-only mode for as long as the first snapshot exists. Modified block is also written to volume and the snapshot of the modified file is written to the Snapshot Copy Reserve.
Now, it doesn't make sense to me how and why snapshot spills happen. Shouldn't volume run out of space before snapshot spill in all cases?