From owner-cvs-sys Sun Jun 4 06:53:37 1995 Return-Path: cvs-sys-owner Received: (from majordom@localhost) by freefall.cdrom.com (8.6.10/8.6.6) id GAA10364 for cvs-sys-outgoing; Sun, 4 Jun 1995 06:53:37 -0700 Received: (from davidg@localhost) by freefall.cdrom.com (8.6.10/8.6.6) id GAA10354 ; Sun, 4 Jun 1995 06:53:29 -0700 Date: Sun, 4 Jun 1995 06:53:29 -0700 From: David Greenman Message-Id: <199506041353.GAA10354@freefall.cdrom.com> To: CVS-commiters, cvs-sys Subject: cvs commit: src/sys/vm vm_object.c Sender: cvs-sys-owner@freebsd.org Precedence: bulk davidg 95/06/04 06:53:28 Modified: sys/vm vm_object.c Log: Fixed a bug that would cause a hang or panic if an object clean operation happend while the file vnode was locked by another process. This happens because the call to vget() wasn't checked for failure so the clean operation would happen without the lock and then the corresponding vput() would release the lock it didn't have and give up a vnode reference it didn't have (which could result in an in-use vnode being freed). The problem would only be seen during an msync() of the mapped file or when the file fell off the object cache (although this latter case is unlikely because the file's object would have to be OBJ_WRITEABLE, and thus shouldn't be on the object cache list). Reviewed by: John Dyson