Changeset View
Changeset View
Standalone View
Standalone View
head/sys/kern/vfs_mount.c
Show First 20 Lines • Show All 496 Lines • ▼ Show 20 Lines | |||||
{ | { | ||||
struct mount *mp; | struct mount *mp; | ||||
mp = uma_zalloc(mount_zone, M_WAITOK); | mp = uma_zalloc(mount_zone, M_WAITOK); | ||||
bzero(&mp->mnt_startzero, | bzero(&mp->mnt_startzero, | ||||
__rangeof(struct mount, mnt_startzero, mnt_endzero)); | __rangeof(struct mount, mnt_startzero, mnt_endzero)); | ||||
TAILQ_INIT(&mp->mnt_nvnodelist); | TAILQ_INIT(&mp->mnt_nvnodelist); | ||||
mp->mnt_nvnodelistsize = 0; | mp->mnt_nvnodelistsize = 0; | ||||
TAILQ_INIT(&mp->mnt_activevnodelist); | |||||
mp->mnt_activevnodelistsize = 0; | |||||
TAILQ_INIT(&mp->mnt_tmpfreevnodelist); | |||||
mp->mnt_tmpfreevnodelistsize = 0; | |||||
TAILQ_INIT(&mp->mnt_lazyvnodelist); | TAILQ_INIT(&mp->mnt_lazyvnodelist); | ||||
mp->mnt_lazyvnodelistsize = 0; | mp->mnt_lazyvnodelistsize = 0; | ||||
if (mp->mnt_ref != 0 || mp->mnt_lockref != 0 || | if (mp->mnt_ref != 0 || mp->mnt_lockref != 0 || | ||||
mp->mnt_writeopcount != 0) | mp->mnt_writeopcount != 0) | ||||
panic("%s: non-zero counters on new mp %p\n", __func__, mp); | panic("%s: non-zero counters on new mp %p\n", __func__, mp); | ||||
if (mp->mnt_vfs_ops != 1) | if (mp->mnt_vfs_ops != 1) | ||||
panic("%s: vfs_ops should be 1 but %d found\n", __func__, | panic("%s: vfs_ops should be 1 but %d found\n", __func__, | ||||
mp->mnt_vfs_ops); | mp->mnt_vfs_ops); | ||||
▲ Show 20 Lines • Show All 51 Lines • ▼ Show 20 Lines | if (!TAILQ_EMPTY(&mp->mnt_nvnodelist)) { | ||||
TAILQ_FOREACH(vp, &mp->mnt_nvnodelist, v_nmntvnodes) | TAILQ_FOREACH(vp, &mp->mnt_nvnodelist, v_nmntvnodes) | ||||
vn_printf(vp, "dangling vnode "); | vn_printf(vp, "dangling vnode "); | ||||
panic("unmount: dangling vnode"); | panic("unmount: dangling vnode"); | ||||
} | } | ||||
KASSERT(TAILQ_EMPTY(&mp->mnt_uppers), ("mnt_uppers")); | KASSERT(TAILQ_EMPTY(&mp->mnt_uppers), ("mnt_uppers")); | ||||
if (mp->mnt_nvnodelistsize != 0) | if (mp->mnt_nvnodelistsize != 0) | ||||
panic("vfs_mount_destroy: nonzero nvnodelistsize"); | panic("vfs_mount_destroy: nonzero nvnodelistsize"); | ||||
if (mp->mnt_activevnodelistsize != 0) | |||||
panic("vfs_mount_destroy: nonzero activevnodelistsize"); | |||||
if (mp->mnt_tmpfreevnodelistsize != 0) | |||||
panic("vfs_mount_destroy: nonzero tmpfreevnodelistsize"); | |||||
if (mp->mnt_lazyvnodelistsize != 0) | if (mp->mnt_lazyvnodelistsize != 0) | ||||
panic("vfs_mount_destroy: nonzero lazyvnodelistsize"); | panic("vfs_mount_destroy: nonzero lazyvnodelistsize"); | ||||
if (mp->mnt_lockref != 0) | if (mp->mnt_lockref != 0) | ||||
panic("vfs_mount_destroy: nonzero lock refcount"); | panic("vfs_mount_destroy: nonzero lock refcount"); | ||||
MNT_IUNLOCK(mp); | MNT_IUNLOCK(mp); | ||||
if (mp->mnt_vfs_ops != 1) | if (mp->mnt_vfs_ops != 1) | ||||
panic("%s: vfs_ops should be 1 but %d found\n", __func__, | panic("%s: vfs_ops should be 1 but %d found\n", __func__, | ||||
▲ Show 20 Lines • Show All 1,743 Lines • Show Last 20 Lines |