summaryrefslogtreecommitdiff
path: root/sys/kern/vfs_mount.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/kern/vfs_mount.c')
-rw-r--r--sys/kern/vfs_mount.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/sys/kern/vfs_mount.c b/sys/kern/vfs_mount.c
index cddc7de6cc8..2ee6fec9dd8 100644
--- a/sys/kern/vfs_mount.c
+++ b/sys/kern/vfs_mount.c
@@ -97,6 +97,10 @@ __KERNEL_RCSID(0, "$NetBSD: vfs_mount.c,v 1.102 2023/02/24 11:02:27 riastradh Ex
#include <uvm/uvm_swap.h>
+#ifdef LOCKDOC
+#include <sys/lockdoc.h>
+#endif
+
enum mountlist_type {
ME_MOUNT,
ME_MARKER
@@ -164,6 +168,13 @@ vfs_mountalloc(struct vfsops *vfsops, vnode_t *vp)
error = fstrans_mount(mp);
KASSERT(error == 0);
+#ifdef LOCKDOC
+ lockdoc_log_memory(1, "mount", mp, sizeof(*mp));
+ lockdoc_log_memory(1, "kmutex_t", mp->mnt_renamelock, sizeof(*mp->mnt_renamelock));
+ lockdoc_log_memory(1, "kmutex_t", mp->mnt_vnodelock, sizeof(*mp->mnt_vnodelock));
+ lockdoc_log_memory(1, "kmutex_t", mp->mnt_updating, sizeof(*mp->mnt_updating));
+#endif
+
mutex_enter(&mountgen_lock);
mp->mnt_gen = mountgen++;
mutex_exit(&mountgen_lock);
@@ -313,6 +324,14 @@ vfs_rele(struct mount *mp)
* free the data structures.
*/
KASSERT(mp->mnt_refcnt == 0);
+
+#ifdef LOCKDOC
+ lockdoc_log_memory(0, "mount", mp, sizeof(*mp));
+ lockdoc_log_memory(0, "kmutex_t", mp->mnt_renamelock, sizeof(*mp->mnt_renamelock));
+ lockdoc_log_memory(0, "kmutex_t", mp->mnt_vnodelock, sizeof(*mp->mnt_vnodelock));
+ lockdoc_log_memory(0, "kmutex_t", mp->mnt_updating, sizeof(*mp->mnt_updating));
+#endif
+
specificdata_fini(mount_specificdata_domain, &mp->mnt_specdataref);
mutex_obj_free(mp->mnt_updating);
mutex_obj_free(mp->mnt_renamelock);