zpool export -f should be able to interrupt file freeing
If we delete a large file we should not have to wait for the freeing of this file to be complete before a zpool export -f can succeed.
If we need a deleted file freed we call zfs_inactive() which grabs the z_teardown_inactive_lock as a reader then calls other functions to actually free the file.
During this freeing if we have a "zpool export -f" come in, we will block in zfsvfs_teardown() while trying to acquire the zfsvfs's z_teardown_inactive_lock as a writer. After zfs_inactive() is done we are able to export but the wait can be long depending on how big a file we're freeing.
It would be nice for export -f to be able to interrupt file freeing so that the export is fast even while large file freeing is in progress.
Updated by Electric Monk over 4 years ago
- Status changed from New to Closed
- % Done changed from 80 to 100
commit eb721827677c553ce8dd0d4390630a857f923f98 Author: Alek Pinchuk <email@example.com> Date: 2016-09-28T18:07:12.000Z 7301 zpool export -f should be able to interrupt file freeing Reviewed by: Matthew Ahrens <firstname.lastname@example.org> Reviewed by: Sanjay Nadkarni <email@example.com> Reviewed by: Saso Kiselkov <firstname.lastname@example.org> Reviewed by: John Kennedy <email@example.com> Approved by: Gordon Ross <firstname.lastname@example.org>