summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Unangst <tedu@cvs.openbsd.org>2003-04-10 02:06:01 +0000
committerTed Unangst <tedu@cvs.openbsd.org>2003-04-10 02:06:01 +0000
commite8841630cf27b9e74e3e4bf8b33fa5538f1eff28 (patch)
tree96fd3f3843933aee237255883079c08e1f656ad4
parentd7ea9fa34f61e945534835b84831df0ed0f5c2d6 (diff)
don't try to update directories on zombies. pr2030. ok art
-rw-r--r--sys/kern/vfs_syscalls.c8
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);