From owner-freebsd-bugs Sun Jan 18 09:10:11 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id JAA23314 for freebsd-bugs-outgoing; Sun, 18 Jan 1998 09:10:11 -0800 (PST) (envelope-from owner-freebsd-bugs@FreeBSD.ORG) Received: (from gnats@localhost) by hub.freebsd.org (8.8.8/8.8.8) id JAA23294; Sun, 18 Jan 1998 09:10:03 -0800 (PST) (envelope-from gnats) Date: Sun, 18 Jan 1998 09:10:03 -0800 (PST) Message-Id: <199801181710.JAA23294@hub.freebsd.org> To: freebsd-bugs Cc: From: Cy Schubert Subject: Re: kern/5396: fdesc fs crashes system Reply-To: Cy Schubert Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org The following reply was made to PR kern/5396; it has been noted by GNATS. From: Cy Schubert To: freebsd-gnats-submit@freebsd.org, dada@sbox.tu-graz.ac.at, cschuber@uumail.gov.bc.ca Cc: Subject: Re: kern/5396: fdesc fs crashes system Date: Sun, 18 Jan 1998 08:22:39 -0800 This is a multi-part message in MIME format. --------------7659CB72A8A636143F84B4FC Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit I submitted a PR a while ago about this and submitted a followup fix to this about two weeks ago. I believe that my fix has been incorporated into -stable and should be included in 2.2.6. Here is the fix. Regards, Phone: (250)387-8437 Cy Schubert Fax: (250)387-5766 UNIX Support OV/VM: BCSC02(CSCHUBER) ITSD BITNET: CSCHUBER@BCSC02.BITNET Government of BC Internet: cschuber@uumail.gov.bc.ca Cy.Schubert@gems8.gov.bc.ca "Quit spooling around, JES do it." --------------7659CB72A8A636143F84B4FC Content-Type: text/plain; charset=us-ascii; name="fdesc_panic_fix.usermod" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="fdesc_panic_fix.usermod" --- sys/miscfs/fdesc/fdesc_vnops.c.orig Sat Dec 21 11:04:28 1996 +++ sys/miscfs/fdesc/fdesc_vnops.c Fri Jan 2 09:18:12 1998 @@ -409,11 +409,18 @@ } break; + case DTYPE_PIPE: case DTYPE_SOCKET: - error = soo_stat((struct socket *)fp->f_data, &stb); + if (fp->f_type == DTYPE_SOCKET) + error = soo_stat((struct socket *)fp->f_data, &stb); + else + error = pipe_stat((struct pipe *)fp->f_data, &stb); if (error == 0) { vattr_null(vap); - vap->va_type = VSOCK; + if (fp->f_type == DTYPE_SOCKET) + vap->va_type = VSOCK; + else + vap->va_type = VFIFO; vap->va_mode = stb.st_mode; vap->va_nlink = stb.st_nlink; vap->va_uid = stb.st_uid; @@ -557,6 +564,7 @@ error = VOP_SETATTR((struct vnode *) fp->f_data, ap->a_vap, ap->a_cred, ap->a_p); break; + case DTYPE_PIPE: case DTYPE_SOCKET: error = 0; break; --------------7659CB72A8A636143F84B4FC--