Skip site navigation (1)Skip section navigation (2)
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>