From 4d3ff3099a09a14d69289c87d7ded588385b3899 Mon Sep 17 00:00:00 2001 From: Taylor R Campbell Date: Wed, 19 Jan 2022 12:10:55 +0000 Subject: [PATCH 22/36] specfs: Assert specnode is open before we bdev_ioctl. spec_node_setmountedfs should only be called while the vnode is open; otherwise nothing can be mounted from it. --- sys/miscfs/specfs/spec_vnops.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/miscfs/specfs/spec_vnops.c b/sys/miscfs/specfs/spec_vnops.c index 42c79d10c9ff..2f9ff6d9d9f5 100644 --- a/sys/miscfs/specfs/spec_vnops.c +++ b/sys/miscfs/specfs/spec_vnops.c @@ -373,6 +373,8 @@ spec_node_setmountedfs(vnode_t *devvp, struct mount *mp) KASSERT(devvp->v_type == VBLK); KASSERT(devvp->v_specnode->sn_dev->sd_mountpoint == NULL || mp == NULL); + KASSERT(devvp->v_specnode->sn_opencnt); + devvp->v_specnode->sn_dev->sd_mountpoint = mp; if (mp == NULL) return;