mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2025-10-24 08:55:00 +03:00
This applies the same change in #9115 to FreeBSD. This was actually the old behavior in FreeBSD 12; it only regressed when FreeBSD support was added to OpenZFS. As far as I can tell, the timeline went like this: * Illumos's zfsvfs_teardown used an unconditional txg_wait_synced * Illumos added the dirty data check [^4] * FreeBSD merged in Illumos's conditional check [^3] * OpenZFS forked from Illumos * OpenZFS removed the dirty data check in #7795 [^5] * @mattmacy forked the OpenZFS repo and began to add FreeBSD support * OpenZFS PR #9115[^1] recreated the same dirty data check that Illumos used, in slightly different form. At this point the OpenZFS repo did not yet have multi-OS support. * Matt Macy merged in FreeBSD support in #8987[^2] , but it was based on slightly outdated OpenZFS code. In my local testing, this vastly improves the reboot speed of a server with a large pool that has 1000 datasets and is resilvering an HDD. [^1]: https://github.com/openzfs/zfs/pull/9115 [^2]: https://github.com/openzfs/zfs/pull/8987 [^3]: |
||
|---|---|---|
| .. | ||
| abd_os.c | ||
| arc_os.c | ||
| crypto_os.c | ||
| dmu_os.c | ||
| event_os.c | ||
| hkdf.c | ||
| kmod_core.c | ||
| spa_os.c | ||
| sysctl_os.c | ||
| vdev_file.c | ||
| vdev_geom.c | ||
| vdev_label_os.c | ||
| zfs_acl.c | ||
| zfs_ctldir.c | ||
| zfs_debug.c | ||
| zfs_dir.c | ||
| zfs_file_os.c | ||
| zfs_ioctl_compat.c | ||
| zfs_ioctl_os.c | ||
| zfs_racct.c | ||
| zfs_vfsops.c | ||
| zfs_vnops_os.c | ||
| zfs_znode.c | ||
| zio_crypt.c | ||
| zvol_os.c | ||