Date: Sat, 15 Dec 2001 23:46:03 -0500 From: Jake Burkholder <jake@locore.ca> To: Kirk McKusick <mckusick@FreeBSD.org> 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> In-Reply-To: <200112140015.fBE0F6Q99440@freefall.freebsd.org>; from mckusick@FreeBSD.org on Thu, Dec 13, 2001 at 04:15:06PM -0800 References: <200112140015.fBE0F6Q99440@freefall.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20011215234603.B35198>