diff options
author | phk <phk@FreeBSD.org> | 2004-11-07 22:16:07 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2004-11-07 22:16:07 +0000 |
commit | 52da2f8e345a7de465e7604b8712493ea0fedebd (patch) | |
tree | a14848a9cd0a6a02b8bde301a11a3f8c51e8bdf7 /sys/kern/sys_pipe.c | |
parent | 878fd8dde724c338fc81887b50b0a93faf7495cd (diff) | |
download | FreeBSD-src-52da2f8e345a7de465e7604b8712493ea0fedebd.zip FreeBSD-src-52da2f8e345a7de465e7604b8712493ea0fedebd.tar.gz |
Introduce fdclose() which will clean an entry in a filedesc.
Replace homerolled versions with call to fdclose().
Make fdunused() static to kern_descrip.c
Diffstat (limited to 'sys/kern/sys_pipe.c')
-rw-r--r-- | sys/kern/sys_pipe.c | 10 |
1 files changed, 1 insertions, 9 deletions
diff --git a/sys/kern/sys_pipe.c b/sys/kern/sys_pipe.c index b450cdd..6865546 100644 --- a/sys/kern/sys_pipe.c +++ b/sys/kern/sys_pipe.c @@ -384,15 +384,7 @@ pipe(td, uap) FILE_UNLOCK(rf); error = falloc(td, &wf, &fd); if (error) { - FILEDESC_LOCK(fdp); - if (fdp->fd_ofiles[td->td_retval[0]] == rf) { - fdp->fd_ofiles[td->td_retval[0]] = NULL; - fdunused(fdp, td->td_retval[0]); - FILEDESC_UNLOCK(fdp); - fdrop(rf, td); - } else { - FILEDESC_UNLOCK(fdp); - } + fdclose(fdp, rf, td->td_retval[0], td); fdrop(rf, td); /* rpipe has been closed by fdrop(). */ pipeclose(wpipe); |