Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/external/cddl/osnet/dist/uts/common/fs/zfs Revert Rev. 1.63 ...
details: https://anonhg.NetBSD.org/src/rev/44696d882885
branches: trunk
changeset: 932412:44696d882885
user: hannken <hannken%NetBSD.org@localhost>
date: Thu May 07 09:12:03 2020 +0000
description:
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.
diffstat:
external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c | 13 +++++++++----
1 files changed, 9 insertions(+), 4 deletions(-)
diffs (23 lines):
diff -r 9429c4ebf650 -r 44696d882885 external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c
--- a/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c Thu May 07 00:55:13 2020 +0000
+++ b/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c Thu May 07 09:12:03 2020 +0000
@@ -5858,10 +5858,15 @@
zp->z_atime_dirty = 0;
dmu_tx_commit(tx);
}
-
- if (zfsvfs->z_os->os_sync == ZFS_SYNC_ALWAYS)
- zil_commit(zfsvfs->z_log, zp->z_id);
- }
+ }
+
+ /*
+ * 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.
+ */
+ if (zfsvfs->z_log)
+ zil_commit(zfsvfs->z_log, zp->z_id);
if (zp->z_sa_hdl == NULL)
zfs_znode_free(zp);
Home |
Main Index |
Thread Index |
Old Index