Source-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: syssrc/sys/ufs/lfs
Module Name: syssrc
Committed By: perseant
Date: Tue May 14 20:03:55 UTC 2002
Modified Files:
syssrc/sys/ufs/lfs: lfs.h lfs_alloc.c lfs_balloc.c lfs_bio.c
lfs_debug.c lfs_extern.h lfs_inode.c lfs_segment.c lfs_subr.c
lfs_syscalls.c lfs_vfsops.c lfs_vnops.c
Log Message:
Phase one of my three-phase plan to make LFS play nice with UBC, and bug-fixes
I found while making sure there weren't any new ones.
* Make the write clusters keep track of the buffers whose blocks they contain.
This should make it possible to (1) write clusters using a page mapping
instead of malloc, if desired, and (2) schedule blocks for rewriting
(somewhere else) if a write error occurs. Code is present to use
pagemove() to construct the clusters but that is untested and will go away
anyway in favor of page mapping.
* DEBUG now keeps a log of Ifile writes, so that any lingering instances of
the "dirty bufs" problem can be properly debugged.
* Keep track of whether the Ifile has been dirtied by various routines that
can be called by lfs_segwrite, and loop on that until it is clean, for
a checkpoint. Checkpoints need to be squeaky clean.
* Warn the user (once) if the Ifile grows larger than is reasonable for their
buffer cache. Both lfs_mountfs and lfs_unmount check since the Ifile can
grow.
* If an inode is not found in a disk block, try rereading the block, under
the assumption that the block was copied to a cluster and then freed.
* Protect WRITEINPROG() with splbio() to fix a hang in lfs_update.
To generate a diff of this commit:
cvs rdiff -r1.38 -r1.39 syssrc/sys/ufs/lfs/lfs.h
cvs rdiff -r1.55 -r1.56 syssrc/sys/ufs/lfs/lfs_alloc.c
cvs rdiff -r1.31 -r1.32 syssrc/sys/ufs/lfs/lfs_balloc.c
cvs rdiff -r1.42 -r1.43 syssrc/sys/ufs/lfs/lfs_bio.c
cvs rdiff -r1.15 -r1.16 syssrc/sys/ufs/lfs/lfs_debug.c
cvs rdiff -r1.29 -r1.30 syssrc/sys/ufs/lfs/lfs_extern.h
cvs rdiff -r1.56 -r1.57 syssrc/sys/ufs/lfs/lfs_inode.c
cvs rdiff -r1.73 -r1.74 syssrc/sys/ufs/lfs/lfs_segment.c \
syssrc/sys/ufs/lfs/lfs_vfsops.c
cvs rdiff -r1.21 -r1.22 syssrc/sys/ufs/lfs/lfs_subr.c
cvs rdiff -r1.64 -r1.65 syssrc/sys/ufs/lfs/lfs_syscalls.c
cvs rdiff -r1.62 -r1.63 syssrc/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.
Home |
Main Index |
Thread Index |
Old Index