HomeFreeBSD

port async unlinked drain from illumos-nexenta

Description

port async unlinked drain from illumos-nexenta

This patch is an async implementation of the existing sync
zfs_unlinked_drain() function. This function is called at mount time and
is responsible for freeing znodes that we didn't get to freeing before.
We don't have to hold mounting of the dataset until the unlinked list is
fully drained as is done now. Since we can process the unlinked set
asynchronously this results in a better user experience when mounting a
dataset with entries in the unlinked set.

Reviewed by: Jorgen Lundman <lundman@lundman.net>
Reviewed by: Tom Caputi <tcaputi@datto.com>
Reviewed by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Matt Ahrens <mahrens@delphix.com>
Reviewed by: Paul Dagnelie <pcd@delphix.com>
Signed-off-by: Alek Pinchuk <apinchuk@datto.com>
Closes #8142

Details

Provenance
Alek P <alek-p@users.noreply.github.com>Authored on Feb 12 2019, 6:41 PM
Brian Behlendorf <behlendorf1@llnl.gov>Committed on Feb 12 2019, 6:41 PM
Parents
rG425d3237ee88: Get rid of space_map_update() for ms_synced_length
Branches
Unknown
Tags
Unknown

Event Timeline

Brian Behlendorf <behlendorf1@llnl.gov> committed rGdcec0a12c8e4: port async unlinked drain from illumos-nexenta (authored by Alek P <alek-p@users.noreply.github.com>).Feb 12 2019, 6:41 PM