Do not clean tempdir if we fail to unmount#2245
Open
Johan-Liebert1 wants to merge 1 commit into
Open
Conversation
dd0db6a to
452cc1d
Compare
Ran into this issue by chance in bootupd where the following drop ordering ```rust drop(tempdir) drop(mount) // unmounts thing mounted at tempdir ``` was causing all the contents of the mounted device to be deleted because the tempdir was being deleted. We might run into the same issue with our Tempdir impl if we fail to unount the ESP and tempdir is dropped deleting everything in the ESP. To prevent that, explicitly set `disable_cleanup` to false on the Tempdir and only enable cleanup after we've successfully unmounted whatever was mounted Signed-off-by: Pragyan Poudyal <pragyanpoudyal41999@gmail.com>
452cc1d to
9efe4d6
Compare
cgwalters
reviewed
Jun 11, 2026
Collaborator
There was a problem hiding this comment.
Oh, that is horrifying.
How about this instead: We have a MountpointTempdir whose Drop only does rmdir (not recursively).
Of course, in many cases I think the real fix here is for us to always use the new mount API to just mount a fd, not a tempdir.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Ran into this issue by chance in bootupd where the following drop ordering
was causing all the contents of the mounted device to be deleted because the tempdir was being deleted. We might run into the same issue with our Tempdir impl if we fail to unount the ESP and tempdir is dropped deleting everything in the ESP.
To prevent that, explicitly set
disable_cleanupto false on the Tempdir and only enable cleanup after we've successfully unmounted whatever was mounted