From owner-freebsd-current Mon Sep 21 15:56:02 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id PAA03339 for freebsd-current-outgoing; Mon, 21 Sep 1998 15:56:02 -0700 (PDT) (envelope-from owner-freebsd-current@FreeBSD.ORG) Received: from gatekeeper.tsc.tdk.com (gatekeeper.tsc.tdk.com [207.113.159.21]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id PAA03262 for ; Mon, 21 Sep 1998 15:55:25 -0700 (PDT) (envelope-from gdonl@tsc.tdk.com) Received: from sunrise.gv.tsc.tdk.com (root@sunrise.gv.tsc.tdk.com [192.168.241.191]) by gatekeeper.tsc.tdk.com (8.8.8/8.8.8) with ESMTP id PAA15289; Mon, 21 Sep 1998 15:54:37 -0700 (PDT) (envelope-from gdonl@tsc.tdk.com) Received: from salsa.gv.tsc.tdk.com (salsa.gv.tsc.tdk.com [192.168.241.194]) by sunrise.gv.tsc.tdk.com (8.8.5/8.8.5) with ESMTP id PAA09428; Mon, 21 Sep 1998 15:54:36 -0700 (PDT) Received: (from gdonl@localhost) by salsa.gv.tsc.tdk.com (8.8.5/8.8.5) id PAA15450; Mon, 21 Sep 1998 15:54:35 -0700 (PDT) From: Don Lewis Message-Id: <199809212254.PAA15450@salsa.gv.tsc.tdk.com> Date: Mon, 21 Sep 1998 15:54:34 -0700 In-Reply-To: Luoqi Chen "Re: Yet another patch to try for softupdates panic" (Sep 21, 12:24pm) X-Mailer: Mail User's Shell (7.2.6 alpha(3) 7/19/95) To: Luoqi Chen , Don.Lewis@tsc.tdk.com, current@FreeBSD.ORG Subject: Re: Yet another patch to try for softupdates panic Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On Sep 21, 12:24pm, Luoqi Chen wrote: } Subject: Re: Yet another patch to try for softupdates panic } > What bothers me is that the } > directory truncation doesn't happen until after ufs_direnter() has } > stored the new directory entry, so I don't see how the softdep_fsync() } > unlocking bug causes the symptoms. } It doesn't lead to panic immediately. But it leaves the system in a } inconsistent state: the real size of the directory is in fact larger then } what the i_size field of inode says it is. The next time a file is created } in this directory, ufs_lookup() will only search for empty slot up to } i_size bytes in the directory, if it couldn't find anything, this file } will be placed at the first slot beyond i_size and there's already a } valid entry there! Yeah, I finally figured that out after I went home for some zzz's. It looks like this bogus unlocking could also affect vinvalbuf() which expects the vnode to be locked. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message