WIP: Fix InodeTable issues revealed by xfstests #44
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I am implementing a fuse-fs with a forked fuse-mt, and came across a bug in the inode table replace implementation: when replace is called, the replaced inode retains a record of a path it was originally linked to, and when subsequently kernel orders the filesystem to forget this inode, the path is removed from the
by_path
table, while being associated with another inode, rendering the table inconsistent. This later causes a panic on Option::unwrap in a subsequentrename
.The bug is reliably reproduced by the test
generic/011
in the xfstests (repo)generic/013
fails in a similar fashion, added a second commit fixing that.P.S putting a WIP status on the PR, as I now realize there may be other bugs around
inode_table
, that are worth fixing in the same PR.