Did you already read [HowTo] Manual rollback with btrfs ?
What i do when i rollback:
- mount / of btrfs (to /mnt/…)
- move /@ to “/@old”
- create a writable snapshot of /@my_snapshot_that_i_want_to_restore to /@
- change the “default” so it points to the new /@ (may be optional)
- reboot into the system
A few days later i delete snapshot “/@old”
- I always keep the readonly-snapshot that is my good state
So i can do any number of rollbacks - I always use /@ as my actuall system
This prevents problems with nested snapshots and snapper