> Module Name: src > Committed By: hannken > Date: Thu May 7 09:12:03 UTC 2020 > > Modified Files: > src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_vnops.c > > Log Message: > Revert Rev. 1.63 and add a comment why we have to zil_commit() here: > > Operation zfs_znode.c::zfs_zget_cleaner() depends on this > zil_commit() as a barrier to guarantee the znode cannot > get freed before its log entries are resolved.
We must be doing something wrong. The only times we should ever call zil_commit are when someone called fsync or the file system is mounted sync=always. Calling zil_commit whenever we delete a file absolutely wrecks performance and shouldn't be needed for on-disk correctness in normal zfs semantics unless I terribly misunderstand something, so we must be doing something wrong with the in-memory state if we seem to need this. Do you have a test case that can trigger the problem?