diff options
author | Ted Unangst <tedu@cvs.openbsd.org> | 2003-04-10 02:06:01 +0000 |
---|---|---|
committer | Ted Unangst <tedu@cvs.openbsd.org> | 2003-04-10 02:06:01 +0000 |
commit | e8841630cf27b9e74e3e4bf8b33fa5538f1eff28 (patch) | |
tree | 96fd3f3843933aee237255883079c08e1f656ad4 /sys/kern | |
parent | d7ea9fa34f61e945534835b84831df0ed0f5c2d6 (diff) |
don't try to update directories on zombies. pr2030. ok art
Diffstat (limited to 'sys/kern')
-rw-r--r-- | sys/kern/vfs_syscalls.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c index 0693c5f1644..1d74eb0c85c 100644 --- a/sys/kern/vfs_syscalls.c +++ b/sys/kern/vfs_syscalls.c @@ -1,4 +1,4 @@ -/* $OpenBSD: vfs_syscalls.c,v 1.98 2002/10/02 21:56:30 nordin Exp $ */ +/* $OpenBSD: vfs_syscalls.c,v 1.99 2003/04/10 02:06:00 tedu Exp $ */ /* $NetBSD: vfs_syscalls.c,v 1.71 1996/04/23 10:29:02 mycroft Exp $ */ /* @@ -347,10 +347,8 @@ checkdirs(olddp) if (VFS_ROOT(olddp->v_mountedhere, &newdp)) panic("mount: lost mount"); for (p = LIST_FIRST(&allproc); p != 0; p = LIST_NEXT(p, p_list)) { - /* - * XXX - we have a race with fork here. We should probably - * check if the process is SIDL before we fiddle with it. - */ + if (P_ZOMBIE(p)) + continue; fdp = p->p_fd; if (fdp->fd_cdir == olddp) { vrele(fdp->fd_cdir); |