Bug #7301
closedzpool export -f should be able to interrupt file freeing
100%
Description
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.
Related issues
Updated by Alek Pinchuk about 7 years ago
- Related to Bug #6569: large file delete can starve out write ops added
Updated by Electric Monk almost 7 years ago
- Status changed from New to Closed
- % Done changed from 80 to 100
git commit eb721827677c553ce8dd0d4390630a857f923f98
commit eb721827677c553ce8dd0d4390630a857f923f98 Author: Alek Pinchuk <alek@nexenta.com> Date: 2016-09-28T18:07:12.000Z 7301 zpool export -f should be able to interrupt file freeing Reviewed by: Matthew Ahrens <mahrens@delphix.com> Reviewed by: Sanjay Nadkarni <sanjay.nadkarni@nexenta.com> Reviewed by: Saso Kiselkov <saso.kiselkov@nexenta.com> Reviewed by: John Kennedy <john.kennedy@delphix.com> Approved by: Gordon Ross <gordon.ross@nexenta.com>