I've been reading a paper on soft updates recently and it discusses rolling back changes to avoid dependency cycles. The point of doing this is because we have to write to the disk in block-size units, and each block can potentially contain metadata affected by more than one metadata operation. So I understand what is happening now and why we have to perform this action but I'm stuck on the understanding the process of how the rollback actually works in practice. I understand that soft-updates are currently not implemented in FreeBSD but I need to understand the concept for a test I will be taking this week.
How does rollback work on soft updates
freebsd