Index: /usr/src/sys/kern/vfs_mount.c =================================================================== --- /usr/src/sys/kern/vfs_mount.c +++ /usr/src/sys/kern/vfs_mount.c @@ -63,6 +63,7 @@ #include #include #include +#include #include @@ -838,6 +839,7 @@ struct mount *mp; struct vnode *newdp; int error, error1; + char buf[MNAMELEN + MFSNAMELEN + 256]; ASSERT_VOP_ELOCKED(vp, __func__); KASSERT((fsflags & MNT_UPDATE) == 0, ("MNT_UPDATE shouldn't be here")); @@ -941,6 +943,9 @@ vn_lock(newdp, LK_EXCLUSIVE | LK_RETRY); VOP_UNLOCK(vp, 0); EVENTHANDLER_DIRECT_INVOKE(vfs_mounted, mp, newdp, td); + snprintf(buf, sizeof(buf), "fs=%s path=\"%s\"", + mp->mnt_stat.f_fstypename, mp->mnt_stat.f_mntonname); + devctl_notify("kernel", "vfs", "mount", buf); VOP_UNLOCK(newdp, 0); mountcheckdirs(vp, newdp); vrele(newdp); @@ -1341,6 +1346,7 @@ int error; uint64_t async_flag; int mnt_gen_r; + char buf[MNAMELEN + MFSNAMELEN + 256]; if ((coveredvp = mp->mnt_vnodecovered) != NULL) { mnt_gen_r = mp->mnt_gen; @@ -1475,6 +1481,9 @@ TAILQ_REMOVE(&mountlist, mp, mnt_list); mtx_unlock(&mountlist_mtx); EVENTHANDLER_DIRECT_INVOKE(vfs_unmounted, mp, td); + snprintf(buf, sizeof(buf), "fs=%s path=\"%s\"", + mp->mnt_stat.f_fstypename, mp->mnt_stat.f_mntonname); + devctl_notify("kernel", "vfs", "unmount", buf); if (coveredvp != NULL) { coveredvp->v_mountedhere = NULL; VOP_UNLOCK(coveredvp, 0);