Use classic locking to solve ABA issue.
Snapshots share same rootLock as source.