From b1e44cdcea09db50c887c2b301e1af1fae1b5aa0 Mon Sep 17 00:00:00 2001 From: Ryan Moeller Date: Thu, 6 May 2021 12:45:16 -0400 Subject: [PATCH] FreeBSD: Initialize/destroy zp->z_lock zp->z_lock is used in shared code for protecting projid and scantime. We don't exercise these paths much if at all on FreeBSD, so have been lucky enough not to have issues with the uninitialized locks so far. Reviewed-by: Brian Behlendorf Reviewed-by: Alexander Motin Signed-off-by: Ryan Moeller Closes #12003 --- module/os/freebsd/zfs/zfs_znode.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/module/os/freebsd/zfs/zfs_znode.c b/module/os/freebsd/zfs/zfs_znode.c index f99cbaee6..5d25fc41e 100644 --- a/module/os/freebsd/zfs/zfs_znode.c +++ b/module/os/freebsd/zfs/zfs_znode.c @@ -143,6 +143,7 @@ zfs_znode_cache_constructor(void *buf, void *arg, int kmflags) list_link_init(&zp->z_link_node); + mutex_init(&zp->z_lock, NULL, MUTEX_DEFAULT, NULL); mutex_init(&zp->z_acl_lock, NULL, MUTEX_DEFAULT, NULL); zfs_rangelock_init(&zp->z_rangelock, zfs_rangelock_cb, zp); @@ -161,6 +162,7 @@ zfs_znode_cache_destructor(void *buf, void *arg) ASSERT(!POINTER_IS_VALID(zp->z_zfsvfs)); ASSERT3P(zp->z_vnode, ==, NULL); ASSERT(!list_link_active(&zp->z_link_node)); + mutex_destroy(&zp->z_lock); mutex_destroy(&zp->z_acl_lock); zfs_rangelock_fini(&zp->z_rangelock);