diff options
| author | Don Lewis <truckman@FreeBSD.org> | 2003-11-16 01:11:11 +0000 |
|---|---|---|
| committer | Don Lewis <truckman@FreeBSD.org> | 2003-11-16 01:11:11 +0000 |
| commit | 95c6cd2f4b74c1636e51a7c7f528e4b98d5184ac (patch) | |
| tree | 6d67dc256f5510d56d60c8c4f6550678f15a17af /sys | |
| parent | 416ab90e6b118683d6be346d7d0523e6d56fa1cc (diff) | |
Notes
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/fs/fifofs/fifo_vnops.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/sys/fs/fifofs/fifo_vnops.c b/sys/fs/fifofs/fifo_vnops.c index 36f8357f1de43..e7112d09ff746 100644 --- a/sys/fs/fifofs/fifo_vnops.c +++ b/sys/fs/fifofs/fifo_vnops.c @@ -155,22 +155,19 @@ fifo_lookup(ap) /* * Dispose of fifo resources. - * Should be called with vnode locked */ static void fifo_cleanup(struct vnode *vp) { struct fifoinfo *fip = vp->v_fifoinfo; - VI_LOCK(vp); - if (vp->v_usecount == 1) { + ASSERT_VOP_LOCKED(vp, "fifo_cleanup"); + if (fip->fi_readers == 0 && fip->fi_writers == 0) { vp->v_fifoinfo = NULL; - VI_UNLOCK(vp); (void)soclose(fip->fi_readsock); (void)soclose(fip->fi_writesock); FREE(fip, M_VNODE); - } else - VI_UNLOCK(vp); + } } /* |
