Module Name: src Committed By: yamt Date: Fri May 29 00:10:52 UTC 2009
Modified Files: src/sys/kern: kern_descrip.c Log Message: fd_free: reset fd_himap/lomap to make fd_checkmaps comfortable. PR/41487. To generate a diff of this commit: cvs rdiff -u -r1.194 -r1.195 src/sys/kern/kern_descrip.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/kern/kern_descrip.c diff -u src/sys/kern/kern_descrip.c:1.194 src/sys/kern/kern_descrip.c:1.195 --- src/sys/kern/kern_descrip.c:1.194 Thu May 28 22:17:04 2009 +++ src/sys/kern/kern_descrip.c Fri May 29 00:10:52 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_descrip.c,v 1.194 2009/05/28 22:17:04 yamt Exp $ */ +/* $NetBSD: kern_descrip.c,v 1.195 2009/05/29 00:10:52 yamt Exp $ */ /*- * Copyright (c) 2008, 2009 The NetBSD Foundation, Inc. @@ -70,7 +70,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kern_descrip.c,v 1.194 2009/05/28 22:17:04 yamt Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_descrip.c,v 1.195 2009/05/29 00:10:52 yamt Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -1253,11 +1253,11 @@ for (fd = NDFDFILE; fd < NDFILE; fd++) { KASSERT(fdp->fd_dtbuiltin.dt_ff[fd] == NULL); } + KASSERT(fdp->fd_himap == fdp->fd_dhimap); + KASSERT(fdp->fd_lomap == fdp->fd_dlomap); #endif /* DIAGNOSTIC */ fdp->fd_refcnt = 1; - fdp->fd_himap = fdp->fd_dhimap; - fdp->fd_lomap = fdp->fd_dlomap; return fdp; } @@ -1278,6 +1278,8 @@ fdp->fd_lastkqfile = -1; fdp->fd_dt = &fdp->fd_dtbuiltin; fdp->fd_dtbuiltin.dt_nfiles = NDFILE; + fdp->fd_himap = fdp->fd_dhimap; + fdp->fd_lomap = fdp->fd_dlomap; CTASSERT(sizeof(fdp->fd_dfdfile[0]) >= sizeof(fdfile_t)); for (i = 0, ffp = fdp->fd_dt->dt_ff; i < NDFDFILE; i++, ffp++) { @@ -1544,6 +1546,8 @@ fdp->fd_exclose = false; memset(&fdp->fd_startzero, 0, sizeof(*fdp) - offsetof(filedesc_t, fd_startzero)); + fdp->fd_himap = fdp->fd_dhimap; + fdp->fd_lomap = fdp->fd_dlomap; KASSERT(fdp->fd_dtbuiltin.dt_nfiles == NDFILE); KASSERT(fdp->fd_dtbuiltin.dt_link == NULL); KASSERT(fdp->fd_dt == &fdp->fd_dtbuiltin);