Subject: CVS commit: src
To: None <source-changes@NetBSD.org>
From: Konrad Schroder <perseant@netbsd.org>
List: source-changes
Date: 04/17/2006 20:02:35
Module Name:	src
Committed By:	perseant
Date:		Mon Apr 17 20:02:35 UTC 2006

Modified Files:
	src/sys/ufs/lfs: lfs.h lfs_segment.c lfs_vnops.c
Added Files:
	src/regress/sys/fs/lfs/ckckp: Makefile check-all ckckp.c
	    cleanalot_async.c run_ckckp

Log Message:
Introduce two fcntl calls that freeze the filesystem right at the point
where segment 0 is being considered for writing.  This allows for automated
checkpoint vailidity scanning, and could be used (in conjunction with the
existing LFCNREWIND) for e.g. snapshot dumps as well.

Include a regression test that does such scanning.

When writing the Ifile, loop through the dirty block list three times to
make sure that the checkpoint is always consistent (the first and second
times the Ifile blocks can cross a segment boundary; not so the third time
unless the segments are very small).  Discovered by using the aforementioned
regression test.


To generate a diff of this commit:
cvs rdiff -r0 -r1.1 src/regress/sys/fs/lfs/ckckp/Makefile \
    src/regress/sys/fs/lfs/ckckp/check-all \
    src/regress/sys/fs/lfs/ckckp/ckckp.c \
    src/regress/sys/fs/lfs/ckckp/cleanalot_async.c \
    src/regress/sys/fs/lfs/ckckp/run_ckckp
cvs rdiff -r1.102 -r1.103 src/sys/ufs/lfs/lfs.h
cvs rdiff -r1.173 -r1.174 src/sys/ufs/lfs/lfs_segment.c
cvs rdiff -r1.167 -r1.168 src/sys/ufs/lfs/lfs_vnops.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.