summaryrefslogtreecommitdiff
path: root/sys/kern/init_main.c
diff options
context:
space:
mode:
authorAlfred Perlstein <alfred@FreeBSD.org>2002-01-13 11:58:06 +0000
committerAlfred Perlstein <alfred@FreeBSD.org>2002-01-13 11:58:06 +0000
commit426da3bcfb40b0b0733f0be4dea9e7659f442368 (patch)
tree598e20df363e602313c7ad93de8f8c4b4240d61d /sys/kern/init_main.c
parent12076922ff2c1b5b1f22d92fa4a924ab2757e46d (diff)
Notes
Diffstat (limited to 'sys/kern/init_main.c')
-rw-r--r--sys/kern/init_main.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/kern/init_main.c b/sys/kern/init_main.c
index 4acc213f760a..e984aec1be93 100644
--- a/sys/kern/init_main.c
+++ b/sys/kern/init_main.c
@@ -358,6 +358,7 @@ proc0_init(void *dummy __unused)
/* Create the file descriptor table. */
fdp = &filedesc0;
p->p_fd = &fdp->fd_fd;
+ mtx_init(&fdp->fd_fd.fd_mtx, "struct filedesc", MTX_DEF);
fdp->fd_fd.fd_refcnt = 1;
fdp->fd_fd.fd_cmask = cmask;
fdp->fd_fd.fd_ofiles = fdp->fd_dfiles;
@@ -487,10 +488,12 @@ start_init(void *dummy)
/* Get the vnode for '/'. Set p->p_fd->fd_cdir to reference it. */
if (VFS_ROOT(TAILQ_FIRST(&mountlist), &rootvnode))
panic("cannot find root vnode");
+ FILEDESC_LOCK(p->p_fd);
p->p_fd->fd_cdir = rootvnode;
VREF(p->p_fd->fd_cdir);
p->p_fd->fd_rdir = rootvnode;
VREF(p->p_fd->fd_rdir);
+ FILEDESC_UNLOCK(p->p_fd);
VOP_UNLOCK(rootvnode, 0, td);
if (devfs_present) {