From owner-cvs-all Sat Dec 15 20:44: 3 2001 Delivered-To: cvs-all@freebsd.org Received: from k6.locore.ca (k6.locore.ca [198.96.117.170]) by hub.freebsd.org (Postfix) with ESMTP id B8CC237B416; Sat, 15 Dec 2001 20:43:56 -0800 (PST) Received: (from jake@localhost) by k6.locore.ca (8.11.6/8.11.6) id fBG4k3b36569; Sat, 15 Dec 2001 23:46:03 -0500 (EST) (envelope-from jake) Date: Sat, 15 Dec 2001 23:46:03 -0500 From: Jake Burkholder To: Kirk McKusick Cc: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/ufs/ffs ffs_alloc.c ffs_snapshot.c ffs_vfsops.c fs.h Message-ID: <20011215234603.B35198@locore.ca> References: <200112140015.fBE0F6Q99440@freefall.freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <200112140015.fBE0F6Q99440@freefall.freebsd.org>; from mckusick@FreeBSD.org on Thu, Dec 13, 2001 at 04:15:06PM -0800 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 Apparently, On Thu, Dec 13, 2001 at 04:15:06PM -0800, Kirk McKusick said words to the effect of; > mckusick 2001/12/13 16:15:06 PST > > Modified files: > sys/ufs/ffs ffs_alloc.c ffs_snapshot.c ffs_vfsops.c > fs.h > Log: > Minimize the time necessary to suspend operations on a filesystem > when taking a snapshot. The two time consuming operations are > scanning all the filesystem bitmaps to determine which blocks > are in use and scanning all the other snapshots so as to be able > to expunge their blocks from the view of the current snapshot. > The bitmap scanning is broken into two passes. Before suspending > the filesystem all bitmaps are scanned. After the suspension, > those bitmaps that changed after being scanned the first time > are rescanned. Typically there are few bitmaps that need to be > rescanned. The expunging of other snapshots is now done after > the suspension is released by observing that we can easily > identify any blocks that were allocated to them after the > suspension (they will be maked as `not needing to be copied' > in the just created snapshot). For all the gory details, see > the ``Running fsck in the Background'' paper in the Usenix > BSDCon 2002 Conference Proceedings, pages 55-64. This breaks compatibility with existing filesystems for 64 bit platforms. You added a pointer field to struct fs and decreased the size of the sparecon array by 4 bytes. Pointers are 8 bytes on 64 bit platforms, so the magic number ends up in a different place. I can't mount any of the filesystems on my sparc64 box without newfsing them first. This is very frustrating. I hope all the alpha people have nfs roots handy. > > Revision Changes Path > 1.82 +15 -1 src/sys/ufs/ffs/ffs_alloc.c > 1.24 +193 -96 src/sys/ufs/ffs/ffs_snapshot.c > 1.164 +1 -0 src/sys/ufs/ffs/ffs_vfsops.c > 1.24 +3 -2 src/sys/ufs/ffs/fs.h To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message