fix: avoid inode unlink due to net error #402
Merged
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.
When creating a file, the client will create inode first and then send a
create dentry request. If create dentry request fails due to a net
error (e.g. send the request to metanode but timed out when getting
response), there is a tiny chance that the dentry is created
successfully on metanode. Thus we cannot unlink the inode created
previously because we would rather leave the orphan inode than create
an orphan dentry.
Signed-off-by: Shuoran Liu shuoranliu@gmail.com
What this PR does / why we need it:
The principle is orphan inode rather than orphan dentry. The PR tries to avoid the tiny chance of orphan dentry.
Which issue this PR fixes (optional, in
fixes #<issue number>(, fixes #<issue_number>, ...)
format, will close that issue when PR gets merged): fixes #Special notes for your reviewer:
Release note: