Skip to content

Fsync the parent directory after object rename and delete - #10

Merged
jaredLunde merged 3 commits into
beyondoss:mainfrom
paulocsanz:dst/b32-dir-fsync
Aug 15, 2026
Merged

Fsync the parent directory after object rename and delete#10
jaredLunde merged 3 commits into
beyondoss:mainfrom
paulocsanz:dst/b32-dir-fsync

Conversation

@paulocsanz

Copy link
Copy Markdown
Contributor

PUT already sync_datas the tmp file (B19). The rename dirent is not fsynced. Power-loss after ACK can lose the object (B32) or resurrect a DELETE (B56). slipstream compact already fsyncs the parent (B7 / #14).

Two commits: failing PUT test (DIR_FSYNCS stays 0), then sync_dir after every rename and successful unlink.

  • PUT / conditional commit
  • copy, move
  • multipart part + complete
  • DELETE

sync_data on the tmp inode is not enough. Power-loss after ACK can
lose the dirent. Same class as slipstream compact (B7).
sync_data on the inode is not enough. PUT/copy/move/MPU and DELETE
must fsync the parent dirent (Pedra F17). Same helper after every
rename and successful unlink.
@jaredLunde
jaredLunde merged commit aa7f8c4 into beyondoss:main Aug 15, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants