diff options
author | dyson <dyson@FreeBSD.org> | 1997-11-29 01:33:10 +0000 |
---|---|---|
committer | dyson <dyson@FreeBSD.org> | 1997-11-29 01:33:10 +0000 |
commit | 6781e003d564b1396bfc29a0570740018cadaddc (patch) | |
tree | caf6592fe18c0525a352355d3506947c0d06107c /sys/kern/kern_descrip.c | |
parent | 81c1440f4f7b69e385d76c2447b4940fd6494e2e (diff) | |
download | FreeBSD-src-6781e003d564b1396bfc29a0570740018cadaddc.zip FreeBSD-src-6781e003d564b1396bfc29a0570740018cadaddc.tar.gz |
Fix and complete the AIO syscalls. There are some performance enhancements
coming up soon, but the code is functional. Docs will be forthcoming.
Diffstat (limited to 'sys/kern/kern_descrip.c')
-rw-r--r-- | sys/kern/kern_descrip.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index 9420480..9ce3e18 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)kern_descrip.c 8.6 (Berkeley) 4/19/94 - * $Id: kern_descrip.c,v 1.44 1997/11/23 10:43:43 bde Exp $ + * $Id: kern_descrip.c,v 1.45 1997/11/23 12:24:59 bde Exp $ */ #include <sys/param.h> @@ -744,6 +744,12 @@ fdcopy(p) register struct file **fpp; register int i; +/* + * Certain daemons might not have file descriptors + */ + if (fdp == NULL) + return NULL; + MALLOC(newfdp, struct filedesc *, sizeof(struct filedesc0), M_FILEDESC, M_WAITOK); bcopy(fdp, newfdp, sizeof(struct filedesc)); @@ -797,6 +803,12 @@ fdfree(p) struct file **fpp; register int i; +/* + * Certain daemons might not have file descriptors + */ + if (fdp == NULL) + return; + if (--fdp->fd_refcnt > 0) return; fpp = fdp->fd_ofiles; @@ -823,6 +835,12 @@ fdcloseexec(p) char *fdfp; register int i; +/* + * Certain daemons might not have file descriptors + */ + if (fdp == NULL) + return; + fpp = fdp->fd_ofiles; fdfp = fdp->fd_ofileflags; for (i = 0; i <= fdp->fd_lastfile; i++, fpp++, fdfp++) |