From cbeb1f72ec153d2ac1b19d98389eca27cb2e371e Mon Sep 17 00:00:00 2001 From: Matthew Dillon Date: Fri, 14 Apr 2006 01:07:38 +0000 Subject: [PATCH] vop_stdopen() must be called when a fifo_open fails in order to then be able to call VOP_CLOSE(). Otherwise the opencount or writecount gets out of synch and causes a panic. Reported-by: "David Rhodus" --- sys/vfs/fifofs/fifo_vnops.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/vfs/fifofs/fifo_vnops.c b/sys/vfs/fifofs/fifo_vnops.c index 0b5c0f7c18..9642caf2e9 100644 --- a/sys/vfs/fifofs/fifo_vnops.c +++ b/sys/vfs/fifofs/fifo_vnops.c @@ -32,7 +32,7 @@ * * @(#)fifo_vnops.c 8.10 (Berkeley) 5/27/95 * $FreeBSD: src/sys/miscfs/fifofs/fifo_vnops.c,v 1.45.2.4 2003/04/22 10:11:24 bde Exp $ - * $DragonFly: src/sys/vfs/fifofs/fifo_vnops.c,v 1.25 2006/04/01 20:46:53 dillon Exp $ + * $DragonFly: src/sys/vfs/fifofs/fifo_vnops.c,v 1.26 2006/04/14 01:07:38 dillon Exp $ */ #include @@ -256,6 +256,7 @@ fifo_open(struct vop_open_args *ap) } return (vop_stdopen(ap)); bad: + vop_stdopen(ap); /* bump opencount/writecount as appropriate */ VOP_CLOSE(vp, ap->a_mode, ap->a_td); return (error); } -- 2.41.0