Page MenuHomeFreeBSD

Move clear_unrhdr to tmpfs_free_tmp.
ClosedPublic

Authored by mjoras on Oct 20 2017, 10:47 PM.

Details

Summary

Clearing the unr in tmpfs_unmount is not correct. In the case of
multiple references to the tmpfs mount (e.g. when there are lookup
threads using it) it will not be the one to finish tmpfs_free_tmp. In
those cases tmpfs_free_node_locked will be the final one to execute
tmpfs_free_tmp, and until then the unr must be valid.

Test Plan

This was originally reported and reproduced by pho using his stress2/misc/
tmpfs* tests. It is trivially reproduced with e.g. tmpfs13.sh, and the
problem does not reproduce after the change. pho offered to run some more
stress tests on the change. All of his tmpfs tests passed.

Diff Detail

Repository
rS FreeBSD src repository
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

mjoras created this revision.Oct 20 2017, 10:47 PM
mjoras updated this revision to Diff 34202.Oct 20 2017, 10:48 PM
  • whitespace
mjoras edited the test plan for this revision. (Show Details)Oct 22 2017, 1:47 AM
rstone accepted this revision.Oct 23 2017, 3:14 PM
This revision is now accepted and ready to land.Oct 23 2017, 3:14 PM
This revision was automatically updated to reflect the committed changes.