Subject: CVS commit: syssrc
To: None <source-changes@netbsd.org>
From: Konrad Schroder <perseant@netbsd.org>
List: source-changes
Date: 06/27/2000 13:57:21
Module Name: syssrc
Committed By: perseant
Date: Tue Jun 27 20:57:20 UTC 2000
Modified Files:
syssrc/sys/ufs/lfs: lfs.h lfs_alloc.c lfs_balloc.c lfs_bio.c
lfs_extern.h lfs_inode.c lfs_segment.c lfs_subr.c lfs_syscalls.c
lfs_vfsops.c lfs_vnops.c
syssrc/sys/ufs/ufs: ufs_vnops.c
Log Message:
Fixes associated with filling an LFS:
Change the space computation to appear to change the size of the *disk*
rather than the *bytes used* when more segment summaries and inode
blocks are written. Try to estimate the amount of space that these will
take up when more files are written, so the disk size doesn't change too
much.
Regularize error returns from lfs_valloc, lfs_balloc, lfs_truncate: they
now fail entirely, rather than succeeding half-way and leaving the fs in
an inconsistent state.
Rewrite lfs_truncate, mostly stealing from ffs_truncate. The old
lfs_truncate had difficulty truncating a large file to a non-zero size
(indirect blocks were not handled appropriately).
Unmark VDIROP on fvp after ufs_remove, ufs_rmdir, so these can be
reclaimed immediately: this vnode would not be written to disk again
anyway if the removal succeeded, and if it failed, no directory
operation occurred.
ufs_makeinode and ufs_mkdir now remove IN_ADIROP on error.
To generate a diff of this commit:
cvs rdiff -r1.25 -r1.26 syssrc/sys/ufs/lfs/lfs.h
cvs rdiff -r1.37 -r1.38 syssrc/sys/ufs/lfs/lfs_alloc.c \
syssrc/sys/ufs/lfs/lfs_inode.c
cvs rdiff -r1.18 -r1.19 syssrc/sys/ufs/lfs/lfs_balloc.c
cvs rdiff -r1.23 -r1.24 syssrc/sys/ufs/lfs/lfs_bio.c
cvs rdiff -r1.17 -r1.18 syssrc/sys/ufs/lfs/lfs_extern.h
cvs rdiff -r1.51 -r1.52 syssrc/sys/ufs/lfs/lfs_segment.c
cvs rdiff -r1.15 -r1.16 syssrc/sys/ufs/lfs/lfs_subr.c
cvs rdiff -r1.42 -r1.43 syssrc/sys/ufs/lfs/lfs_syscalls.c
cvs rdiff -r1.52 -r1.53 syssrc/sys/ufs/lfs/lfs_vfsops.c
cvs rdiff -r1.39 -r1.40 syssrc/sys/ufs/lfs/lfs_vnops.c
cvs rdiff -r1.68 -r1.69 syssrc/sys/ufs/ufs/ufs_vnops.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.