]> git.proxmox.com Git - mirror_zfs.git/commitdiff
FreeBSD: Initialize/destroy zp->z_lock
authorRyan Moeller <ryan@iXsystems.com>
Thu, 6 May 2021 16:45:16 +0000 (12:45 -0400)
committerGitHub <noreply@github.com>
Thu, 6 May 2021 16:45:16 +0000 (09:45 -0700)
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 <behlendorf1@llnl.gov>
Reviewed-by: Alexander Motin <mav@FreeBSD.org>
Signed-off-by: Ryan Moeller <ryan@ixsystems.com>
Closes #12003

module/os/freebsd/zfs/zfs_znode.c

index f99cbaee6766b58a8e8c7db8c648b08837febfd1..5d25fc41eb1001c068927c65c99df773c05754a8 100644 (file)
@@ -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);