diff --git a/servers/vfs/stadir.c b/servers/vfs/stadir.c index 448637ef6..8715f033c 100644 --- a/servers/vfs/stadir.c +++ b/servers/vfs/stadir.c @@ -37,6 +37,7 @@ PUBLIC int do_fchdir() /* Is the file descriptor valid? */ if ((rfilp = get_filp(m_in.fd)) == NIL_FILP) return(err_code); + dup_vnode(rfilp->filp_vno); /* Change into expects a reference. */ return change_into(&fp->fp_wd, rfilp->filp_vno); } diff --git a/servers/vfs/vnode.c b/servers/vfs/vnode.c index 5a7e4084a..8a8278e42 100644 --- a/servers/vfs/vnode.c +++ b/servers/vfs/vnode.c @@ -136,7 +136,7 @@ PUBLIC void put_vnode(struct vnode *vp) vp->v_sdev = NO_DEV; vp->v_mapfs_e = 0; vp->v_mapinode_nr = 0; - vp->v_fs_count = 0; + vp->v_mapfs_count = 0; }