From owner-cvs-all Fri Feb 21 16:29:54 2003 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 6677237B401; Fri, 21 Feb 2003 16:29:52 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7A3F043FDF; Fri, 21 Feb 2003 16:29:51 -0800 (PST) (envelope-from mckusick@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h1M0Tp0U045455; Fri, 21 Feb 2003 16:29:51 -0800 (PST) (envelope-from mckusick@repoman.freebsd.org) Received: (from mckusick@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h1M0Tpvi045454; Fri, 21 Feb 2003 16:29:51 -0800 (PST) Message-Id: <200302220029.h1M0Tpvi045454@repoman.freebsd.org> From: Kirk McKusick Date: Fri, 21 Feb 2003 16:29:51 -0800 (PST) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/ufs/ffs ffs_alloc.c ffs_extern.h 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 2003/02/21 16:29:51 PST Modified files: sys/ufs/ffs ffs_alloc.c ffs_extern.h ffs_snapshot.c Log: This patch fixes a bug on an active filesystem on which a snapshot is being taken from panicing with either "freeing free block" or "freeing free inode". The problem arises when the snapshot code is scanning the filesystem looking for inodes with a reference count of zero (e.g., unlinked but still open) so that it can expunge them from its view. If it encounters a reclaimed vnode and has to restart its scan, then it will panic if it encounters and tries to free an inode that it has already processed. The fix is to check each candidate inode to see if it has already been processed before trying to delete it from the snapshot image. Sponsored by: DARPA & NAI Labs. Revision Changes Path 1.110 +41 -0 src/sys/ufs/ffs/ffs_alloc.c 1.55 +2 -1 src/sys/ufs/ffs/ffs_extern.h 1.61 +4 -0 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