From owner-cvs-all Tue Oct 8 23:13:49 2002 Delivered-To: cvs-all@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C08BD37B401; Tue, 8 Oct 2002 23:13:48 -0700 (PDT) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 86E7543E4A; Tue, 8 Oct 2002 23:13:48 -0700 (PDT) (envelope-from mckusick@FreeBSD.org) Received: from freefall.freebsd.org (mckusick@localhost [127.0.0.1]) by freefall.freebsd.org (8.12.6/8.12.6) with ESMTP id g996DmCo034240; Tue, 8 Oct 2002 23:13:48 -0700 (PDT) (envelope-from mckusick@freefall.freebsd.org) Received: (from mckusick@localhost) by freefall.freebsd.org (8.12.6/8.12.6/Submit) id g996DmjA034239; Tue, 8 Oct 2002 23:13:48 -0700 (PDT) Message-Id: <200210090613.g996DmjA034239@freefall.freebsd.org> From: Kirk McKusick Date: Tue, 8 Oct 2002 23:13:48 -0700 (PDT) To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/ufs/ffs ffs_snapshot.c X-FreeBSD-CVS-Branch: HEAD Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG mckusick 2002/10/08 23:13:48 PDT Modified files: sys/ufs/ffs ffs_snapshot.c Log: When creating a snapshot, create a list of initially allocated blocks. Whenever doing a copy-on-write check, first look in the list of initially allocated blocks to see if it is there. If so, no further check is needed. If not, fall through and do the full check. This change eliminates one of two known deadlocks caused by snapshots. Handling the second deadlock will be the subject of another check-in. This change also reduces the cost of the copy-on-write check by speeding up the verification of frequently checked blocks. Sponsored by: DARPA & NAI Labs. Revision Changes Path 1.43 +135 -7 src/sys/ufs/ffs/ffs_snapshot.c To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message