There appears to be a bug in rename atomicity in SplitFS.
Occurs in the following sequence of operations:
- Create
file1
- Create
file2
- rename
file1 -> file2
SplitFS does the following during recovery:
- Re-create
file1 (since after rename file1 is lost)
- Do nothing since
file2 exists
- Skip
rename (step 3) since file2 exists.
End state of the filesystem leaves it in an inconsistent/non-atomic state where file1 and file2 exist after recovery while file2 only exists before recovery.