summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
Diffstat (limited to 'sys')
-rw-r--r--sys/kern/vfs_mount.c19
-rw-r--r--sys/kern/vfs_vnode.c4
-rw-r--r--sys/sys/lockdoc.h2
3 files changed, 24 insertions, 1 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);
diff --git a/sys/kern/vfs_vnode.c b/sys/kern/vfs_vnode.c
index 48def4ce900..df74282dff0 100644
--- a/sys/kern/vfs_vnode.c
+++ b/sys/kern/vfs_vnode.c
@@ -463,6 +463,7 @@ vnalloc_marker(struct mount *mp)
#ifdef LOCKDOC
lockdoc_log_memory(1, "vnode_impl", vip, sizeof(*vip));
lockdoc_log_memory(1, "kmutex_t", vp->v_interlock, sizeof(*(vp->v_interlock)));
+ lockdoc_log_memory(1, "kmutex_t", vp->v_uobj.vmobjlock, sizeof(*(vp->v_uobj.vmobjlock)));
#endif
return vp;
@@ -482,6 +483,7 @@ vnfree_marker(vnode_t *vp)
#ifdef LOCKDOC
lockdoc_log_memory(0, "vnode_impl", vip, sizeof(*vip));
lockdoc_log_memory(0, "kmutex_t", vp->v_interlock, sizeof(*(vp->v_interlock)));
+ lockdoc_log_memory(0, "kmutex_t", vp->v_uobj.vmobjlock, sizeof(*(vp->v_uobj.vmobjlock)));
#endif
mutex_obj_free(vp->v_interlock);
@@ -1413,6 +1415,7 @@ vcache_alloc(void)
#ifdef LOCKDOC
lockdoc_log_memory(1, "vnode_impl", vip, sizeof(*vip));
lockdoc_log_memory(1, "kmutex_t", vp->v_interlock, sizeof(*(vp->v_interlock)));
+ lockdoc_log_memory(1, "kmutex_t", vp->v_uobj.vmobjlock, sizeof(*(vp->v_uobj.vmobjlock)));
#endif
return vip;
@@ -1470,6 +1473,7 @@ vcache_free(vnode_impl_t *vip)
#ifdef LOCKDOC
lockdoc_log_memory(0, "vnode_impl", vip, sizeof(*vip));
lockdoc_log_memory(0, "kmutex_t", vp->v_interlock, sizeof(*(vp->v_interlock)));
+ lockdoc_log_memory(0, "kmutex_t", vp->v_uobj.vmobjlock, sizeof(*(vp->v_uobj.vmobjlock)));
#endif
mutex_obj_free(vp->v_interlock);
diff --git a/sys/sys/lockdoc.h b/sys/sys/lockdoc.h
index 1cfe9c04a6e..0f706a48ce2 100644
--- a/sys/sys/lockdoc.h
+++ b/sys/sys/lockdoc.h
@@ -10,7 +10,7 @@
#include <sys/mutex.h>
#include <sys/rwlock.h>
-#define LOCKDOC_VERSION "ms-0.2"
+#define LOCKDOC_VERSION "ms-vfs-0.2"
#define LOCKDOC_DELIMITER "#"
#define LOCKDOC_DELIMITER_CHAR '#'
#define LOCKDOC_PING() lockdoc_outb('p',0x00e9);