LVM 2 snapshots works as COW. However the block may change even if it is not used anymore. As SSD disks may need marking of free/used blocks to better manage blocks, the API was introduced into Linux to mark free/used blocks.
My question is - does LVM use this API? I.e. are blocks are copied on every change or only if filesystem cares about contents?
Blocks are copied on every change.